EF报错:Validation failed for one or more entities. See ‘EntityValidationErrors’ property for moredetails. 调试方法

经常看到这样一个错

 

并不能看到具体的是那个属性为什么验证不通过,也许不少人都遇到这种情况。

这里给大家介绍一个Exception类,让我们能够轻松的知道具体的哪一个字段出了什么问题。

那就是 System.Data.Entity.Validation.DbEntityValidationException,相信代码都知道怎么写了,最简单的就是

try
{
// 写数据库
}
catch (DbEntityValidationException dbEx)
{

}

然后对这个异常加一个 快塑监视,然后就能找到错在哪了



或者把它所有的异常都打印出来,虽然我没有测试,但是看代码这么些,没毛病

            try
            {
                return base.SaveChanges();
            }
            catch (DbEntityValidationException exception)
            {
                var errorMessages =
                    exception.EntityValidationErrors
                        .SelectMany(validationResult => validationResult.ValidationErrors)
                        .Select(m => m.ErrorMessage);

                var fullErrorMessage = string.Join(", ", errorMessages);
                //记录日志
                //Log.Error(fullErrorMessage);
                var exceptionMessage = string.Concat(exception.Message, " 验证异常消息是:", fullErrorMessage);

                throw new DbEntityValidationException(exceptionMessage, exception.EntityValidationErrors);
            }

 

posted on 2018-07-19 22:06  奔游浪子  阅读(265)  评论(0)    收藏  举报

导航