【发布时间】:2015-03-05 19:15:46
【问题描述】:
我在我的应用程序中使用 EF,但它正在引发异常
System.Data.Entity.Validation.DbEntityValidationException:一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。在 System.Data.Entity.Internal.InternalContext.SaveChanges() 在 Capture.Controllers.HomeController.AddFirstVisit(Int32 companyId)
我可以看到我需要做什么才能了解该错误 - 我需要查看 EntityValidationErrors 但问题是我无法调试 - 代码需要在服务器上运行,因此在本地运行不会重现此错误.
我遇到的问题是,在没有看到对象的情况下,如何将 execption 作为字符串取出?
目前我使用catch(Exception e) 并将e.ToString() 传递给我的日志引擎。
如何传递错误详细信息?我希望像
catch(Exception e)
{
e.innerException.EntityValidationErrors; // what should this be
}
这几乎有答案EF Code First: How do I see 'EntityValidationErrors' property from the nuget package console?,但我没有得到e.EntityValidationErrors的选项
【问题讨论】:
-
多么棒的答案
-
不确定是不是讽刺哈哈。您是否使用特定的日志记录框架?有些内置了此功能
-
@JNYRanger,不是讽刺,我不是典型的 SO 用户!! :) 我不知道你可以远程调试,它比你更真实
-
您可能还想考虑减少一些日志引擎,例如 Elmah,并停止以您正在执行的方式捕获和记录消息。在大多数情况下,堆栈跟踪至少同样重要。 hanselman.com/blog/…
标签: c# .net entity-framework