由于业务需要写了一个批量数据导入工具。中间踩了一个坑

 

问:

1、 SaveChange 实体A 发生pk冲突,异常了。
2、记录日志
3、不让退出程序,继续处理下一个实体
4、Add新的实体B
5、再次调用SaveChange
6、问,这次SaveChange ,EF是保存实体A,还是实体B?

 

 

 

根据目前的结果看,EF还是会尝试保存实体A。

根本原因是实体A的状态还是Added。

必须在异常处理中,把实体A的状态修改为Detached ,才能摆脱异常魔咒。

 

posted on 2018-06-28 23:13  zooz  阅读(132)  评论(0编辑  收藏  举报