我有这样的情况,我在 EF 4.1 的 DatabaseInitializer() 中初始化我的模型并得到这个烦人的错误"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."所以,我转到这个 EntityValidationErrors 并且有一个字段{System.Data.Entity.Validation.DbEntityValidationResult}根本没有给我任何关于它无法初始化的字段的信息. 有没有办法获得有关此错误的更多信息?
"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."
{System.Data.Entity.Validation.DbEntityValidationResult}
清除事情:
我知道如何解决字符串长度问题。我要问的是如何获得破坏模型的确切字段名称。
当您在块内处于调试模式时,catch {...}打开“QuickWatch”窗口(ctrl++ alt)q并粘贴到那里:
catch {...}
ctrl
alt
q
((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors
这将允许您深入到ValidationErrors树中。这是我发现即时了解这些错误的最简单方法。
ValidationErrors
对于只关心第一个错误并且可能没有catch阻塞的 Visual 2012+ 用户,您甚至可以这样做:
catch
((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage