对一个或多个实体的验证失败。有关详细信息,请参阅“EntityValidationErrors”属性

问题原因:触发了定义的实例字段校验规则。比如不为空字段为空了,或者字段超长,我的问题是不为空的字段为空导致的。

解决方案

第一种:ValidateOnSaveEnabled : 修改这个属性为 false  不让做实体验证  (不太推荐,虽然不验证实体了,但是操作数据的时候还会报错)。

第二种:找出异常信息,解决问题。

发生这个错误会触发DbEntityValidationException异常,这个异常会有详细的异常信息说明是哪个字段,出现了什么错误,接下来我们try catch输出错误

    try
            {
                changes = base.SaveChanges();
            }
            catch(DbEntityValidationException  dbe )
            {
               foreach(var va in dbe.EntityValidationErrors)
                {
                    foreach(var err in va.ValidationErrors)
                    {
                        string strerr = $"Class:{va.Entry.Entity.GetType().FullName},Property:{err.PropertyName},Error:{err.ErrorMessage}";
                    }
                }
            }
            

 Class:ConST.CRM.Entities.Models.T_Customer,Property:CustomerCode,Error:CustomerCode 字段是必需的。

无穷的伟大,也是从“0”开始的
原文地址:https://www.cnblogs.com/wxxf/p/15562462.html