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 關注
- 1118 瀏覽
添加回答
舉報