一例对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性的解决

这个问题相信只要是做MVC的,都碰到过,也都知道错误的原因,就是触发了定义的实例字段校验规则。比如定义的不为空,但是为空了,或者定义的字段长度为50,但是超过50了。

可是有时虽然知道是这样,但是具体问题解决的时候还是无从下手。我最近就碰到一个,知道是在更新某个表的时候出现的这个问题。可是在本地无法具现此错误,这个错误是在特定条件发生的,我并不知道此特定发生条件是什么,很郁闷。

在网上找了下,知道发生这个错误会触发DbEntityValidationException异常,这个异常会有详细的异常信息说明是哪个字段,出现了什么错误,只不过需要循环输出。打算输出到日志文件中看是什么错误。代码如下:

[csharp] view plain copy

  1. try
  2. {
  3. es2.Update(examList);
  4. }
  5. catch (DbEntityValidationException dbEx)
  6. {
  7. foreach (var validationErrors in dbEx.EntityValidationErrors)
  8. {
  9. foreach (var validationError in validationErrors.ValidationErrors)
  10. {
  11. EventLog.Log(string.Format("Class: {0}, Property: {1}, Error: {2}", validationErrors.Entry.Entity.GetType().FullName,
  12. validationError.PropertyName,
  13. validationError.ErrorMessage), "error");
  14. }
  15. }
  16. throw;
  17. }
  18. catch (Exception ex)
  19. {
  20. throw;
  21. }

之所以用2个catch,是为了防止有其他非DbEntityValidationException 错误时,没有错误日志。

DbEntityValidationException所在命名空间:System.Data.Entity.Validation

编译,上传到服务器,过了一会,查看日志文件,找到错误原因了。

Class: System.Data.Entity.DynamicProxies.ExamList_839A196D8FC4CF7E8A791B7F29782BA535E73532A1C3C2C00FD6EF30B6C4A660, Property: StudentAnswer, Error: 字段 StudentAnswer 必须是最大长度为 50 的字符串。
是StudentAnswer 字段长度不够了。找到答案就好办了。扩大字段大小,问题解决

原文地址:https://www.cnblogs.com/tsql/p/9015703.html

时间: 2024-10-21 06:45:38

一例对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性的解决的相关文章

EF5.0 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性

使用asp.net+EF5.0练习的时候,遇到这样一个问题: 对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性 但是感到很疑惑,去百度,说是关闭EF验证,即可 修改: SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关 可以在 Controller层这样关闭 db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveCha

“未处理DbEntityValidationException”,"对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性"。

对一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性. 问题原因可能是: 1. 非空列未插入值错误 2. 多个表间外键列长度不一样 3. ef上下文对象db为空 4. ef上下文设置属性为 db.Configuration.ValidateOnSaveEnabled = false; 5. 内容长度超过列最大长度 6.解决方案里后来新增了类库但未更新 7.添加引用using System.Data.Validation; 我的错误原因:

报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败

使用MVC和EF,在保存数据的时候报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性. 日志记录中,出错的地方在result += db.SaveChanges();所在行,尝试如下操作: →使用try...catch捕获→在catch所在行打上断点,运行,F11,对ex变量添加监视→在EntityValidati

mvc EF 数据保存时,报错:”对一个或多个实体的验证失败……“之解决

在EF5.0添加实体数据到数据库的时候,出现“对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性这个错误 解决: SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关 db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled =

对一个或多个实体的验证失败

对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性. 问题原因: 1. 非空列未插入值错误        2. 多个表间外键列长度不一样        3. ef上下文对象db为空         4. ef上下文设置属性为 db.Configuration.ValidateOnSaveEnabled = false; 5. 内容长度超过列最大长度

对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。

问题原因可能是: 1. 非空列未插入值错误 2. 多个表间外键列长度不一样 3. ef上下文对象db为空 4. ef上下文设置属性为 db.Configuration.ValidateOnSaveEnabled = false; 5. 内容长度超过列最大长度 6.解决方案里后来新增了类库但未更新 7.添加引用using System.Data.Validation; 我的错误原因: 项目发布到站点后报的错,我在解决方案后来引用了EF框架未上传,新增加了一个类库但在数据库中更改了字段的属性,但在解

EF使用时异常:对一个或多个实体的验证失败。有关详细信息

//最顶级异常中是不提示具体哪个字段验证失败,必须到详细异常类型中查看 try { //EF操作 } catch (System.Data.Entity.Validation.DbEntityValidationException DbVEx) { //DbVEx.EntityValidationErrors.ToList()[0].ValidationErrors; throw; } 也可关闭此验证(不推荐) //db为EF操作数据库上下文对象 db.Configuration.Validat

MVC开发中的常见错误-03-System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性。

return Db.SaveChanges()>0; return CurrentDBSession.SaveChanges(); RoleInfoService.EditEntity(roleInfo); 虽然一脸懵逼,但是大概可以确定是数据保存的时候出错. 使用try...catch捕获一下 try { return Db.SaveChanges() > 0; } catch (Exception ee) { throw; } 查看数据库,果然是必须的. over!

使用MVC和EF,在保存数据的时候报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性。

public UserInfo Create(UserInfo entity) { try { context.UserInfoes.Add(entity); context.SaveChanges(); } catch (Exception ex) { throw; } return entity; } 从局部变量框中找EntityValidationErrors--ValidationErrors中的第一个元素--ErrorMessage属性,查看错误原因