Entity Framework大批量添加数据,效率低

wuhan_dotnet 2012-04-27 03:39:06
用EF一次新增2000多条数据的时候,居然需要10多分钟。。请问这个可以怎么优化?
主实体
MainEntity:
ID
List<Detail> Details
Created
子实体。
Detail:{....}

我这用EF当Details有2000多条数据就卡住了。。悲剧。。.
请问有好的解决办法吗?
...全文
665 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
z1067dd 2012-12-27
  • 打赏
  • 举报
回复
先把数据保存在内存表里,然后在一起插入到数据库中,可以使用ViewState保存
tptptp00 2012-05-08
  • 打赏
  • 举报
回复
只用创建一个dbcontext
在dbcontext把所有的对象都放进去后再执行savechanges
花痴 2012-05-06
  • 打赏
  • 举报
回复

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啊亲,这样很耗费时间的
theillusion 2012-05-05
  • 打赏
  • 举报
回复
什么操作要一次插入2000条,这本身就是个悲剧。
theillusion 2012-05-05
  • 打赏
  • 举报
回复
不要每次都建新的 context,打开一个事务,添加2000条,SaveChanges,提交事务,可以好一点。

a121984376 2012-05-04
  • 打赏
  • 举报
回复
可以拼接成insert sql语句
然后使用entity.executeStoreCommand来执行~
wuhan_dotnet 2012-04-28
  • 打赏
  • 举报
回复
不是首次了。。。后面都是这样。。。但就算是首次 也不至于这么慢吧。。2000条数据 10多分钟啊
lqkankan 2012-04-28
  • 打赏
  • 举报
回复
首次运行吗?

首次运行肯定会慢点

你多试几次 看看最短需要多长时间
wuhan_dotnet 2012-04-28
  • 打赏
  • 举报
回复
 
public virtual int Add(MainEntity entity)
{
entity.Validate();

using (var context = new KFPOS2HQEntities())
{
context.MainEntities.ApplyChanges(entity);
return context.SaveChanges();
}
}
这个是新增代码
context.SaveChanges2000条数据 要等上15分钟。。
q107770540 2012-04-28
  • 打赏
  • 举报
回复
把你的新增代码发来看看

8,494

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧