我遇到过这样的情况:我在 EF 4.1 的 DatabaseInitializer() 中初始化我的模型,并收到此恼人的错误“一个或多个实体的验证失败。有关更多详细信息,请参阅“EntityValidationErrors”属性。”
因此,我转到这个 EntityValidationErrors ,有一个字段 {System.Data.Entity.Validation.DbEntityValidationResult}
,它没有给我任何有关它无法初始化的字段的信息。
有没有办法获取有关此错误的更多信息?
清除内容:
我知道如何解决字符串长度问题。我要问的是如何获得破坏模型的确切字段名称。
最佳答案
当您在 catch {...}
block 中处于 Debug模式时,打开“QuickWatch”窗口 (ctrl+alt +q)并粘贴到那里:
((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors
这将允许您深入了解 ValidationErrors
树。这是我发现的立即了解这些错误的最简单方法。
对于只关心第一个错误并且可能没有 catch
block 的 Visual 2012+ 用户,您甚至可以这样做:
((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage
关于.net - 从 Db ValidationException 获取准确的错误类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345890/