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

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

在向数据库添加数据时出现该错误。
对出先错误的语句进行try catch
可以发现是因为task字段的长度最大为40
但当我增大数据库该字段的长度时,并没有解决该异常。

查阅了很多网上对于该错误的教程,
比如通过关闭验证实体有效性(ValidateOnSaveEnabled)这个开关
下方这串代码。

db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled = true; db.Configuration.ValidateOnSaveEnabled = false; int count = db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled = true;

因为我们用EF映射的ORM,自动进行实体的验证,当我们对实体进行添加、更新或者其他相关操作的时候。关闭该验证,会跳过ef的实体验证,直接进行数据库的操作。虽然解决了问题,但并不是一个好的办法。

经过考虑,我认为应该ef模型中的该字段属性未改变。
将40改为max,问题解决。