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

  • 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");
        }
    

    但是,由于 DbModelBuilder 已被 ModelBuilder 取代,因此我在 EF7 上苦苦挣扎。有什么建议么?

    最佳答案

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

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

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

    10-07 20:15