測試數據庫,多個項目。ASP.NET身份2表映射
首先MVC項目工作正常使用Identity 2.糾正表建成,即AspNetUsers,AspNetRoles等
在同一個數據庫中第二個項目沒有工作,我很困惑,爲什麼不呢?
途徑是註冊。
在我AccountController.cs
,預期和點擊這個代碼註冊方法被稱爲:
var user = new ApplicationUser { UserName = model.ContactEmail, Email = model.ContactEmail };
調試與VS2015,表明用戶是完全填充。
想用並且standlone標識表,以便添加以下代碼被調用正確的下一個(在我IdentityModels.cs
文件):
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("sp_AspNetUsers","dbo");
}
調試器顯示沒有怨言。
返回到下一行Account Controller.cs
這樣的:
var result = await UserManager.CreateAsync(user, model.Password);
錯誤說 「無法將NULL值插入列 '用戶名',表 'dbName.dbo.AspNetUsers';」
錯誤似乎自明但是:
1)爲什麼引用AspNetUsers表,而不是 sp_AspNetUsers表?
2)調試顯示user.UserName具有價值爲何還認爲這是 NULL?
新的MVC和身份,所以任何指針來幫助我的學習將不勝感激。
編輯
我現在已經修改了代碼IdentityModel.cs
到:
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("sp_AspNetUsers");
modelBuilder.Entity<ApplicationUser>().ToTable("sp_AspNetUsers");
modelBuilder.Entity<IdentityUserRole>().ToTable("sp_AspNetUserRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("sp_AspNetUserLogins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("sp_AspNetUserClaim");
modelBuilder.Entity<IdentityRole>().ToTable("sp_AspNetRoles");
}
錯誤我現在得到的是:
無效列名 '鑑別'
無法在任何地方的Identity表中看到此列?