EF报错:Validation failed for one or more entities. See ‘EntityValidationErrors’ property for moredetails. 调试方法
经常看到这样一个错

并不能看到具体的是那个属性为什么验证不通过,也许不少人都遇到这种情况。
这里给大家介绍一个Exception类,让我们能够轻松的知道具体的哪一个字段出了什么问题。
那就是 System.Data.Entity.Validation.DbEntityValidationException,相信代码都知道怎么写了,最简单的就是
try
{
// 写数据库
}
catch (DbEntityValidationException dbEx)
{
}
然后对这个异常加一个 快塑监视,然后就能找到错在哪了

或者把它所有的异常都打印出来,虽然我没有测试,但是看代码这么些,没毛病
try { return base.SaveChanges(); } catch (DbEntityValidationException exception) { var errorMessages = exception.EntityValidationErrors .SelectMany(validationResult => validationResult.ValidationErrors) .Select(m => m.ErrorMessage); var fullErrorMessage = string.Join(", ", errorMessages); //记录日志 //Log.Error(fullErrorMessage); var exceptionMessage = string.Concat(exception.Message, " 验证异常消息是:", fullErrorMessage); throw new DbEntityValidationException(exceptionMessage, exception.EntityValidationErrors); }
浙公网安备 33010602011771号