重命名dbo.AspNetUsers表

Yeh*_*lam 11 asp.net entity-framework asp.net-identity

我正在尝试重命名ASP.net Identity 2.0生成的默认表名.我在stackoverflow上阅读了所有文章,问题和答案,但我仍然得到相同的错误.

我将表重命名为Roles,UserClaims,Logins,UserRoles和Users.我还将应用程序dbcontext更改为以下内容

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }

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


        modelBuilder.Entity<IdentityUser>().ToTable("Users", "dbo");
        modelBuilder.Entity<IdentityRole>().ToTable("Roles", "dbo");
        modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles", "dbo");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims", "dbo");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins", "dbo");

    }

}
Run Code Online (Sandbox Code Playgroud)

但我一直得到Invalid object name 'dbo.AspNetUsers'.错误,我不知道为什么它仍然试图首先找到AspNetUsers而不仅仅是用户,虽然我做了上述更改.完全绝望了.

在此输入图像描述

数据库以及具有新表名的相同列:

在此输入图像描述

和SQL数据库项目:

在此输入图像描述

tmg*_*tmg 4

您需要更新数据库。Enable-Migrations并且,在这里Update-Database详细解释。EF 代码优先方法的要点是编写模型类和配置,每次更改某些内容时,我们都会使用 EF 迁移来更新数据库架构。

使用 asp.net-identity-entityframework 的数据库优先方法在这里这里进行了解释,不是那么简单