public static string Error(this DbEntityValidationException ex, MethodBase mb = null) { var Err = new StringBuilder(); Err.AppendLine(String.Format(">>Err [{0:D6}]: {1} - {2}{3}{4}\n", 1, mb.DeclaringType.ToString(), new StackTrace(new StackFrame(1)).GetFrame(0).GetMethod().ToString(), "", "\n>>\t" + ex.ExceptionToString() + "\n>>\t{\n>>\t" + ex.StackTrace.Replace("\n", "\n>>\t") + "\n>>\t}")); Err.AppendLine(); foreach (var error in ex.EntityValidationErrors) { var entry = error.Entry; foreach (var err in error.ValidationErrors) { Err.AppendLine(err.PropertyName + " " + err.ErrorMessage); } Err.AppendLine(); foreach (PropertyInfo propertyInfo in entry.Entity.GetType().GetProperties()) { string st = ""; st = propertyInfo.ToString(); st += " = "; var tObj = entry.Entity.GetPropValue(propertyInfo.Name); st += (entry.Entity.GetPropValue(propertyInfo.Name) != null ? entry.Entity.GetPropValue(propertyInfo.Name).ToString() : "Null"); Err.AppendLine(st); } } return(Err.ToString()); }
/// <summary> /// A DbEntityValidationException extension method that formates validation errors to string. /// </summary> public static string DbEntityValidationExceptionToString(this DbEntityValidationException e) { var validationErrors = e.DbEntityValidationResultToString(); var exceptionMessage = string.Format("{0}Validation errors:{1}{0}{2}", Environment.NewLine, validationErrors, e.ExceptionToString()); return(exceptionMessage); }