【问题标题】:Received error stating null values cannot be inserted into 'EmailConfirmed' Column in 'AspNetUsers' Table收到的错误指出空值无法插入到“AspNetUsers”表中的“EmailConfirmed”列中
【发布时间】:2016-12-20 00:16:10
【问题描述】:

我最近在数据库的 AspNetUsers 表中添加了一些新列(努力从 Identity 1.0 迁移到 2.0)。我将“EmailConfirmed”列设置为可为空,但是在运行项目并登录时,我收到一条错误消息:“Action: LoginPartial Controller: Account Exception Message: The 'EmailConfirmed' property on 'IdentityUser` 4' 无法设置为“空”值。您必须将此属性设置为“System.Boolean”类型的非空值。”

错误发生在帐户控制器页面内的登录方法内部。这是一些代码(它在用户变量的行处中断):

[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);
        }
    }

除此之外,我真的不确定从这里去哪里。有没有人知道是什么导致了错误以及我可以做些什么来修复它?

附:这是数据库中表的图片:

【问题讨论】:

    标签: c# sql-server asp.net-mvc-5 asp.net-identity


    【解决方案1】:

    您似乎更改了数据库类型,但没有更改模型类型。

    虽然您的表允许空值,但映射表的 C# 类不允许空值,是“布尔”而不是“布尔?”

    如果您使用实体框架,则必须更改类型映射;否则你会找到代表模型映射到你的表的类,并更改“UserManager.FindAsync”方法返回的类型

    【讨论】:

    • 我通过添加:public bool? EmailConfirmed { 得到;放; } 到 IdentityUser 类。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多