3 回答
TA贡献1829条经验 获得超4个赞
我发现在每条消息中同时获取POCO类名和属性名很有用,并希望避免为此而ErrorMessage在所有[Required]标签上编写自定义属性。
以下对Martin代码的调整为我解决了这些细节:
// Retrieve the error messages as a list of strings.
List<string> errorMessages = new List<string>();
foreach (DbEntityValidationResult validationResult in ex.EntityValidationErrors)
{
string entityName = validationResult.Entry.Entity.GetType().Name;
foreach (DbValidationError error in validationResult.ValidationErrors)
{
errorMessages.Add(entityName + "." + error.PropertyName + ": " + error.ErrorMessage);
}
}
TA贡献1851条经验 获得超4个赞
在catch {...}块中处于调试模式时,打开“ QuickWatch”窗口(ctrl+ alt+ q)并粘贴在其中:
((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors
这将允许您深入到ValidationErrors树中。这是我发现的即时了解这些错误的最简单方法。
对于只关心第一个错误并且可能没有catch阻止的Visual 2012+用户,您甚至可以执行以下操作:
((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage
- 3 回答
- 0 关注
- 1046 浏览
添加回答
举报