我重命名了标准身份表:
public class User : IdentityUser
{
//...
public string Name { get; set; }
public string Surname { get; set; }
public DateTime? RegisteredDate { get; set; }
public DateTime? LastLoginDate { get; set; }
//...
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("Users");
modelBuilder.Entity<User>().ToTable("Users");
modelBuilder.Entity<IdentityRole>().ToTable("Roles");
modelBuilder.Entity<Role>().ToTable("Roles");
modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
}
得到了这个:
在modelBuilder
中删除此列需要做什么?
答案 0 :(得分:3)
Table-Per-Hierarchy继承方案中使用了Discriminator
列。
Code First必须添加一个特殊列来区分持久类。这不是对象模型中持久化类的属性;它由EF Code First内部使用。默认情况下,列名为Discriminator
,其类型为字符串。值默认为持久化类名称 - 在本例中为User
More info
<强>更新强>
如果您不想要该列,则可以通过在您的上下文中添加User
来使IdentityUser
模型的一部分不是DbSet<User>
:
modelBuilder.Entity<User>().ToTable("Users");