前言:这几天在项目通过EF映射表后,向数据表里添加数据时,就出现了上述的错误。这个错误说起来是有自己的不细心造成的。
在添加数据库表的字段时,没有添加约束,EF自动给标量属性添加了Not Null约束,我在插数据时正好没有给那个字段插入,VS就报了这个错。
下面有两种方案可以解决上述的错误:
①:SaveChanges前先关闭验证实体有效性(ValidateOnSaveEnabled)这个开关
可以在 Controller层这样关闭(这个方案是从网上K来的),这个方案感觉就是有点霸王硬上弓的意思,不是这个错误,硬是这样解决,网上这样的写的还不少,我觉得这样不好。
db.Configuration.ValidateOnSaveEnabled = false;
int count = db.SaveChanges();
db.Configuration.ValidateOnSaveEnabled = true;
②:修改数据表中字段的约束(问题所在):
出现这个错误一般就是数据表的问题,我们先检查数据表里的字段是否为NULL或者字段是否超过长度。如果是直接把这个字段的约束改下就行。本人亲测时可以的。
欢迎大神留下其他的解决方案。共同修仙。