entity-framework-4.1 - Elmah 和 DbEntityValidationException

标签 entity-framework-4.1 elmah

我已经使用 Elmah 和 EF4.1 Code First 设置了一个项目。

项目抛出System.Data.Entity.Validation.DbEntityValidationException ,但 Elmah 没有提供足够的细节来确定哪些验证失败。所有记录的是:

System.Data.Entity.Validation.DbEntityValidationException: Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.

有没有办法让 Elmah 扩展并记录 EntityValidationErrors属性(property)?

最佳答案

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;

关于entity-framework-4.1 - Elmah 和 DbEntityValidationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181487/

相关文章:

wcf - 用于非 HTTP 协议(protocol)应用程序的 Elmah 或没有 HttpContext 的 Elmah

asp.net-mvc - 为什么我在 ASP.NET MVC 中使用 ELMAH 得到重复的异常条目?

c# - Entity Framework 不保存更改

c# - FirstOrDefault 抛出 'Sequence contains more than one matching element'

entity-framework - 如何在 Entity Framework 中定义存储过程(代码优先)?

c# - 在 Entity Framework 4.1 中查询数据页面并获取总数的更好方法?

c# - 如何从 EntityFramework 查询复杂结果集并在 MVC 中显示结果集。

asp.net-mvc - 部署在 Azure 上的 MVC 站点在访问 elmah 时返回错误

asp.net - 使用 ELMAH 记录 WCF 服务的异常

asp.net-mvc-3 - Elmah 错误日志记录 FromCurrentContext 在单元测试时中断