ASP MVC标识 - 在数据库第一种方法中更改默认数据库

时间:2015-08-04 13:55:20

标签: c# asp.net-mvc entity-framework forms-authentication owin

我习惯先使用数据库。创建了一个启用了登录的ASP MVC5项目,默认设置在默认连接下创建了一个与所有相关表(如AspNetUser等)的数据库。我想要实现的是在我自己的数据库中使用这些表(甚至可能以不同的用户,角色等命名)。甚至不确定我需要从哪里开始。 配置auth使用此

            app.CreatePerOwinContext(ApplicationDbContext.Create);

反过来使用DefaultConnection,如下所示

    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }
  • 我将默认连接更改为指向我的数据库的连接。

  • 我更改了数据库上下文以实现IdentityDBContext。现在,当我尝试登录时,我收到一条错误消息,指出IdentityUserLogin不属于模型上下文。

我假设我需要手动创建相关表格。那是对的吗?我怎样才能更改表名?如何将auth集成到另一个数据库中的正确方向的任何步骤都将非常感激。

1 个答案:

答案 0 :(得分:1)

如果要替换默认表:

 protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            // Renaming default ASP.NET tables
            modelBuilder.Entity<IdentityUser>().ToTable("Users");
            modelBuilder.Entity<User>().ToTable("Users");
            modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
            modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
            modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
            modelBuilder.Entity<IdentityRole>().ToTable("Roles");



        }