Asp.net Identity 2自定义用户和自定义表名

时间:2015-11-11 17:13:34

标签: c# entity-framework asp.net-identity

我正在尝试使用几个额外的字段来自定义IdentityUser

public class User : IdentityUser 
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

并更改表格的名称

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<IdentityUser>().ToTable("Auth_Users", "web");
    modelBuilder.Entity<User>().ToTable("Auth_Users", "web");
}

非常简单,有效,我有我的桌子web.Auth_Users。不好的是,包含用户ID的其他表(AspNetUsersClaimAspNetUserLoginsAspNetUsersRole添加了一个名为IdentityUser_Id的列,该列始终设置为NULL

enter image description here

为什么呢?它来自哪里,如何避免它被创建?

1 个答案:

答案 0 :(得分:2)

由于此行modelBuilder.Entity<IdentityUser>().ToTable("Auth_Users", "web");

,您收到了这个奇怪的列

删除它。最后你必须有这个代码:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.Entity<User>().ToTable("Auth_Users", "web");
}