如何解决Elmah和DbEntityValidationException
我已经使用Elmah和EF4.1 Code First建立了一个项目。 该项目抛出“ 0”,但是Elmah没有提供足够的详细信息来确定验证失败的原因。所有记录的是:System.Data.Entity.Validation.DbEntityValidationException: Validation failed for one or more entities. See \'EntityValidationErrors\' property for more details.
有没有办法使Elmah扩展并记录EntityValidationErrors
属性?
解决方法
List<IUserFeedback> errors = new List<IUserFeedback>();
try
{
_dbContext.SaveChanges();
Updated(this,HasUnsavedChanges);
}
catch (DbEntityValidationException ex)
{
foreach (var x in ex.EntityValidationErrors)
{
foreach (var y in x.ValidationErrors)
{
if (!String.IsNullOrWhiteSpace(y.PropertyName))
errors.Add(new UserFeedback() {
FeedbackFlags = TypeOfUserFeedbackFlags.Error,Message = String.Format(\"Unable to save {0} due to an issue with its \\\"{1}\\\" value. The error returned was \\\"{2}\\\"\",x.Entry.Entity,y.PropertyName,y.ErrorMessage)
});
else
errors.Add(new UserFeedback() {
FeedbackFlags = TypeOfUserFeedbackFlags.Error,Message = String.Format(\"Unable to save {0} due to the error \\\"{1}\\\"\",x.Entry,y.ErrorMessage)
});
}
}
}
return errors;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。