我最近向數據庫中的AspNetUsers表中添加了一些新列(試圖從Identity 1.0遷移到2.0)。我將'EmailConfirmed'列設置爲可爲空,但是當它運行項目並登錄時,我收到一個錯誤消息,說明:「操作:LoginPartial控制器:帳戶異常消息:'IdentityUser`4'EmailConfirmed'屬性無法設置爲'null'值,您必須將此屬性設置爲'System.Boolean'類型的非空值'。「收到錯誤,指出空值無法插入到'Asp.netUsers'表中的'EmailConfirmed'列中
錯誤發生在帳戶控制器頁面內部的Login方法內部。這裏是一些代碼(它與用戶變量一致):
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryTokenOnAllPosts]
public async Task<ActionResult> Login(LoginViewModel model)
{
try
{
if (ModelState.IsValid)
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user != null)
{
await SignInAsync(user, false);
return RedirectToAction("HomeIndex", "Home");
}
else
{
TempData["ErrorMsg"] = "Incorrect email and/or password. Please try again...";
}
}
// If we got this far, something failed, redisplay form
return View("LoginPartial", model);
}
catch (Exception e)
{
HandleErrorInfo error = new HandleErrorInfo(e, "Account", "LoginPartial");
return View("Error", error);
}
}
除此之外,我不確定從哪裏去。有沒有人有任何線索,什麼是導致錯誤,我能做些什麼來解決它?
P.S.這裏是表的數據庫中的圖片:
我知道它的工作原理是:public bool? EmailConfirmed {get;組; }到IdentityUser類。謝謝您的意見。 – Bastian
太好了。你能將答案標記爲正確嗎? –