2015-05-27 56 views
0

我想獲取所有驗證錯誤。如何獲取所有驗證錯誤?

我可以在DbEntityValidationException中遇到錯誤嗎?的[驗證

DbEntityValidationException ex = exception as DbEntityValidationException 
+0

可能重複失敗的一個或多個實體。請參閱'EntityValidationErrors'屬性的更多詳細信息](http://stackoverflow.com/questions/7795300/validation-failed-for-one-or-more-entities-see-entityvalidationerrors-propert) – Colin

+0

另請參見:http:// stackoverflow.com/a/22500988/150342 – Colin

回答

0
public static string GetAllExceptionTree(Exception exception) 
    { 
     if (exception is DbEntityValidationException) 
     { 
      StringBuilder validationErrors = new StringBuilder(); 
      DbEntityValidationException ex = exception as DbEntityValidationException; 
      foreach (var error in ex.EntityValidationErrors) 
       foreach (var err in error.ValidationErrors) 
        validationErrors.Append(String.Format("{0}<br/>", err.ErrorMessage)); 

      return validationErrors.ToString(); 
     } 

     StringBuilder sb = new StringBuilder(); 
     do 
     { 
      if (sb.Length != 0) 
       sb.Append("..."); 
      sb.Append(exception.Message); 
      exception = exception.InnerException; 
     } while (exception != null); 

     return sb.ToString(); 
    }