我使用EF Model-First在mvc4项目的Sql server上构建我的数据库。在ActionResult方法的控制器中,我忽略了所有可以为空的属性(设置为Allow Null)我得到了一个 ErrorMessage ,DbEntityValidationException 表示:需要ProfileImgUrl字段。 现在这是问题,因为我将该字段设置为allow null!所以这个字段(ProfileImgUrl)应该是不需要的。 这是我的控制器:
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();
}
答案 0 :(得分:1)
转到模型,查找列,检查其属性。确保它是“可空的 - 真实的”。 EDMX模型中的属性和数据库中的列必须可以为空。