我有一个使用实体框架的项目。而在我的DbContext上调用SaveChanges时,我得到了以下异常:
System.Data.Entity.Validation.DbEntityValidationException:验证
一个或多个实体失败。参见'EntityValidationErrors'属性
欲知详情。
这一切都很好,但我不希望每次发生此异常时都附加调试器。此外,在生产环境中,我不能轻易地附加调试器,因此我必须竭尽全力重现这些错误。
我如何才能看到隐藏在DbEntityValidationException中的细节?
在代码中使用try块
try
{
// Your code...
// Could also be before try if you know the exception occurs in SaveChanges
context.SaveChanges();
}
catch (DbEntityValidationException e)
{
foreach (var eve in e.EntityValidationErrors)
{
Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
eve.Entry.Entity.GetType().Name, eve.Entry.State);
foreach (var ve in eve.ValidationErrors)
{
Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
ve.PropertyName, ve.ErrorMessage);
}
}
throw;
}
你也可以在这里查看详细信息
http://mattrandle.me/viewing-entityvalidationerrors-in-visual-studio/
一个或多个实体验证失败。更多细节请参见'EntityValidationErrors'属性
http://blogs.infosupport.com/improving-dbentityvalidationexception/