繁体   English   中英

尝试进行更改并保存时出现EntityValidationError

[英]EntityValidationError when trying to make changes and save them

我的添加/删除功能都可以正常工作。 但是,当我编辑时,我收到来自实体的验证错误消息。

错误是: {"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."}

在查看EntityValidationErrors时,它仅指出: {System.Data.Entity.Validation.DbEntityValidationResult}

我正在将模型从编辑页面传递到Post / Edit方法存根。

   [HttpPost]
   public ActionResult Edit(EmployeeRoadsideAssistance employee)
   {
       AlphaDBEntities db = new AlphaDBEntities();

       db.Entry(employee).State = EntityState.Modified;
       db.SaveChanges();

       return RedirectToAction("Edit", new { id = employee.id });
   }

保存更改后失败。 如果我对实际模型不做任何更改,问题也将退出。 因此,如果我添加了新人员,然后单击“编辑”,然后在不进行任何更改的情况下单击“编辑”,我仍然会收到错误消息。

编辑

感谢DavidG的精彩评论,我得以看到真正的错误,该错误表明我试图将null传递给必填列。

这是因为我在“添加”步骤中预先填写了这些内容,因此在“编辑”步骤中未将它们包含在模型中。 我添加了隐藏字段以容纳预填充的列,并且现在可以使用。

为了帮助您找到问题,可以将db.SaveChanges()包装到try catch中,然后在catch行上放置一个断点。 这将使您能够导航到异常并查看EntryType和ValidationErrors。

try {    
    db.SaveChanges();
}
catch(DbEntityValidationException e) {
    throw;
}

这就是我解决EntityValidation问题的方式。 大多数情况下,此错误是由模型中存在的字段验证引起的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM