小编典典

从 DbValidationException 获取准确的错误类型

all

我有这样的情况,我在 EF 4.1 的 DatabaseInitializer() 中初始化我的模型并得到这个烦人的错误"Validation failed for one or more entities. See 'EntityValidationErrors' property for more details."所以,我转到这个 EntityValidationErrors
并且有一个字段{System.Data.Entity.Validation.DbEntityValidationResult}根本没有给我任何关于它无法初始化的字段的信息.
有没有办法获得有关此错误的更多信息?

清除事情:

我知道如何解决字符串长度问题。我要问的是如何获得破坏模型的确切字段名称。


阅读 64

收藏
2022-07-12

共1个答案

小编典典

当您在块内处于调试模式时,catch {...}打开“QuickWatch”窗口(ctrl++ altq并粘贴到那里:

((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors

这将允许您深入到ValidationErrors树中。这是我发现即时了解这些错误的最简单方法。

对于只关心第一个错误并且可能没有catch阻塞的 Visual 2012+ 用户,您甚至可以这样做:

((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage
2022-07-12