覆盖默认身份表名称

Rea*_*idy 4 asp.net-mvc entity-framework-core asp.net-core-mvc asp.net-core

我想重命名默认的身份表名称:

  • AspNetRoles
  • AspNetUserClaims
  • AspNetUserLogins
  • AspNetUserRoles
  • AspNetUsers

我了解如何使用EF6执行此操作:

 protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<IdentityUser>()
            .ToTable("Users", "dbo").Property(p => p.Id).HasColumnName("User_Id");
        modelBuilder.Entity<User>()
            .ToTable("Users", "dbo").Property(p => p.Id).HasColumnName("User_Id");
    }
Run Code Online (Sandbox Code Playgroud)

然而,我正在努力使用EF7,因为DbModelBuilder已被ModelBuilder取代.有什么建议?

Ped*_*tre 5

您必须在SqlServerPropertyBuilder中使用ForSqlServer或ForRelational来更改列名,并在modelBuilder中更改表名

modelBuilder.Entity<IdentityUser>()
                .Property(o => o.Id)
                .ForSqlServer()
                .Column("User_Id")

 modelBuilder.Entity<IdentityUser>()
                    .ForSqlServer()
                    .Table("User")
Run Code Online (Sandbox Code Playgroud)

更新: 对于beta 5,不再强制使用ForSqlServer