2015-11-11 119 views
1

我想定製IdentityUser與一對夫婦額外的字段Asp.net身份2自定義用戶和自定義表名

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

爲什麼?它來自哪裏,我如何避免它被創建?

+0

在你創建「IdentityUser」之前,它是實體「User」,對吧? – Ismael

+0

恰恰相反,'IdentityUser'恰好在我創建'User'之前。 無論如何,我應該根據@CodeNotFound的答案刪除'IdentityUser'列名翻譯 – Naigel

回答

2

你是因爲該行modelBuilder.Entity<IdentityUser>().ToTable("Auth_Users", "web");

的得到這種怪異的塔只是將其刪除。最後你必須有這樣的代碼:

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