C#之對一個或多個實體的驗證失敗。有關詳細信息,請參見“EntityValidationErrors”屬性。(DbEntityValidationException 處理方法)

一、背景

小夥伴們在做網站登錄驗證或者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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章