首页 新闻 会员 周边 捐助

EF savechanges()时,爆内存溢出,因为要移除两万条数据和插入两万条,有什么方法可以解决吗?

0
悬赏园豆:50 [待解决问题]

因为要移除两万条数据和插入两万条,有什么方法可以解决吗?

T丶MELO的主页 T丶MELO | 初学一级 | 园豆:151
提问于:2019-01-15 14:59
< >
分享
所有回答(6)
0

一口吃不下,就分成十口,十口吃不下,就百口。
要不然换个比较能吃的也行。

爱编程的大叔 | 园豆:30844 (高人七级) | 2019-01-15 15:10

分着吃,就没事务性了,有某个有问题 回退也麻烦啊。感觉是不是EF有办法避免啊

支持(0) 反对(0) T丶MELO | 园豆:151 (初学一级) | 2019-01-15 15:29

@T丶MELO:

  1. 书上说事务,没说怎么用,什么时候可以用,什么时候不要用,所以这不是你的错误,我理解。
  2. 几万件事情,其中一件事情做错了,你觉得是该全部重做好呢?还是只重做这一件事好呢?
  3. 几万件事情,通常他们之间是不会存在事务需求的,一件事情失败和另外一件事情之间不存在需要同进同退的事务性。
  4. 虽然现在内存不值钱了,可是毕竟你买不起破锣糕那种512G内存的服务器啊,对不,所以,该用脑袋想的时候,还是要用一下的。
支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2019-01-15 16:20
0

两万条放了一个事务里?非要这样吗?如果非要这样的话,可以想其他办法实现事务

会长 | 园豆:12463 (专家六级) | 2019-01-15 15:35
0

这不是 EF 的用武之地,用 Dapper + SQL 可以轻松搞定

dudu | 园豆:30948 (高人七级) | 2019-01-15 16:19

哎 我也知道啊。。。我这是改别人的项目,所以没办法

支持(0) 反对(0) T丶MELO | 园豆:151 (初学一级) | 2019-01-15 16:21

@T丶MELO: 建议贴出具体的错误信息

支持(0) 反对(0) dudu | 园豆:30948 (高人七级) | 2019-01-15 16:39
0

使用EF扩展包实现的 ,BulkInsert(entitylist)

T丶MELO | 园豆:151 (初学一级) | 2019-01-16 17:21
0

终极解决方案: 使用sqlcopy进行批量插入

彪悍的代码不需要注释 | 园豆:221 (菜鸟二级) | 2019-01-18 10:51
0

BulkInsert插入也是先把数据放内存

Giant150 | 园豆:1172 (小虾三级) | 2019-06-14 15:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册