一、背景
小夥伴們在做網站登錄驗證或者EF時,可能會遇到DbEntityValidationException異常,但是並不能清楚知道到底是什麼出了問題。
二、解決思路
1.先引入命名空間using System.Data.Entity.Validation;
2.直接通過try catch 來調試DbEntityValidationException的EntityValidationErrors的詳細信息
3.或者通過try catch將DbEntityValidationException的異常信息輸出來,如下
捕獲DbEntityValidationException異常後,將異常裏面的詳細信息自定義輸出。
try
{
//引發DbEntityValidationException異常的代碼
}
catch (DbEntityValidationException dbEx)
{
foreach (var validationErrors in dbEx.EntityValidationErrors)
{
foreach (var validationError in validationErrors.ValidationErrors)
{
string exLog= string.Format("Class: {0}, Property: {1}, Error: {2}", validationErrors.Entry.Entity.GetType().FullName,
validationError.PropertyName,
validationError.ErrorMessage);
}
}
throw;
}
catch (Exception ex)
{
throw;
}
通過這裏的exLog我們就能知道DbEntityValidationException出問題的詳細原因了。
三、注意事項
1.此解決方案參考了作者https://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html 的文章
2.我是黑夜の騎士,歡迎大家關注我的博客,筆者將持續輸出BIM相關軟件開發以及編程乾貨;
3.歡迎加入BIM行業開發交流1羣,獲取更多開發資料 羣號:711844216