Entity Framework大批量添加数据,效率低
用EF一次新增2000多条数据的时候,居然需要10多分钟。。请问这个可以怎么优化?
主实体
MainEntity:
ID
List<Detail> Details
Created
子实体。
Detail:{....}
我这用EF当Details有2000多条数据就卡住了。。悲剧。。.
请问有好的解决办法吗?
------解决方案--------------------把你的新增代码发来看看
------解决方案--------------------首次运行吗?
首次运行肯定会慢点
你多试几次 看看最短需要多长时间
------解决方案--------------------可以拼接成insert sql语句
然后使用entity.executeStoreCommand来执行~
------解决方案--------------------不要每次都建新的 context,打开一个事务,添加2000条,SaveChanges,提交事务,可以好一点。
------解决方案--------------------什么操作要一次插入2000条,这本身就是个悲剧。
------解决方案--------------------
public virtual int Add(MainEntity entity)
{
entity.Validate();
using (var context = new KFPOS2HQEntities())
{
context.MainEntities.ApplyChanges(entity);
return context.SaveChanges();
}
}
你不要每次都saveChanges一次,创建一个事务,2000条add完成了以后再save应该会比较快一些喔,而且,context = new KFPOS2HQEntities()你不要每次都去new啊亲,这样很耗费时间的