EF SaveChanges() 报错(转载)
程序员文章站
2022-03-18 18:37:45
最佳答案 报这个错是因为,提交了主键重复的数据,虽然未提交到数据库中 但是现在的EF上下文中已经包含了我提交的数据,下次在提交正确数据时, 原来添加到上下文中的数据依然还在。。如何处理这个问题呢? 最佳答案 报这个错是因为,提交了主键重复的数据,虽然未提交到数据库中 但是现在的EF上下文中已经包含了 ......
最佳答案
报这个错是因为,提交了主键重复的数据,虽然未提交到数据库中
但是现在的EF上下文中已经包含了我提交的数据,下次在提交正确数据时,
原来添加到上下文中的数据依然还在。。如何处理这个问题呢?
using(var db = new .......())
{
db.save...........();
}
其他:
1、dbcontext 每次使用时重新new一个,不要使用单例模式,可以考虑单元模式。
2、EF 上下文被我设置成了静态的了
3、我也是Commit时SaveChanges() 方法报更新条目出错,
别人说是数据的id 重复,但我调试看了Add 的三个id 都没重复,
后来发现是Add对象的DateTime 类型的属性没有赋值。赋值之后就能保存到数据库了。
4、一次插入多行时,其中有一个重复(我创建了唯一复合索引),导致所有都插入失败,而且重新运行插入依然失败。这说明了公用一个上下文的坏处,
后来改用Using和cry catch。不出错就一次插入,出错就循环赋值中using多个上下文,保证不重复部分插入成功。
来源:https://q.cnblogs.com/q/44768/
推荐阅读
-
VS2017添加EF的MVC控制器报错的解决方法
-
VS2017添加EF的MVC控制器报错的解决方法
-
转载——Asp.Net MVC+EF+三层架构的完整搭建过程
-
MVC EF 执行SQL语句(转载)
-
.Net EF Core数据库使用SQL server 2008 R2分页报错How to avoid the “Incorrect syntax near &
-
【转载】IIS报错不是有效的Win32应用程序
-
EF(EntityFramework) 插入或更新数据报错的解决方法
-
EF SaveChanges重写加入日志
-
【转载】访问IIS中网站出现 403.14 - Forbidden报错信息
-
【转载】Mysql创建表时报错error150