DbValidationError:FieldName字段是必需的,但我在数据库中将该字段设置为Allow Nulls

时间:2015-09-12 14:17:39

标签: c# asp.net-mvc-4

我使用EF Model-First在mvc4项目的Sql server上构建我的数据库。在ActionResult方法的控制器中,我忽略了所有可以为空的属性(设置为Allow Null)我得到了一个 ErrorMessage ,DbEntityValidationException 表示需要ProfileImgUrl字段。 现在这是问题,因为我将该字段设置为allow null!所以这个字段(ProfileImgUrl)应该是不需要的。 picture of the error 这是我的控制器:

 SWMModelContainer db = new SWMModelContainer();
  [HttpGet]
        public ActionResult Registration()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Registration(User user)
        {


            if (ModelState.IsValid)
            {

                var crypt = new SimpleCrypto.PBKDF2();
                var encryptPass = crypt.Compute(user.Password);

                var users = db.Users.Create();

                users.Email = user.Email;
                users.FirstName = user.FirstName;
                users.LastName = user.LastName;
                users.Password = encryptPass;
                users.PasswordSalt = crypt.Salt;
                users.Gender = "m";
                users.CreateDate = DateTime.Now;
                int lastProductId = db.Users.Max(item => item.UrId);
                users.UrId = lastProductId + 10;

                db.Users.Add(users);
                try
                {
                db.SaveChanges();

                return RedirectToAction("Index", "main");
                    }
                catch (DbEntityValidationException dbEx)
                {
                    foreach (var validationErrors in dbEx.EntityValidationErrors)
                    {
                        foreach (var validationError in validationErrors.ValidationErrors)
                        {
                            Trace.TraceInformation("Property: {0} Error: {1}",
                                                    validationError.PropertyName,
                                                    validationError.ErrorMessage);
                        }
                    }
                }
                }
                else 
                {
                    ModelState.AddModelError("", "Registration data is incorrect! ");
                }


            return View();
        }

1 个答案:

答案 0 :(得分:1)

转到模型,查找列,检查其属性。确保它是“可空的 - 真实的”。 EDMX模型中的属性和数据库中的列必须可以为空。