几个SubmitChanges连续很慢

时间:2010-06-04 10:12:09

标签: linq-to-sql submitchanges

一个问题: 为什么我使用以下代码

 for (int i = 0; i < 10000; i++)
  {
      Entity e = new Entity();
      e.DisplayValue = i.ToString();
      ctx.Entities.InsertOnSubmit(e);
  }
  ctx.SubmitChanges();

大约8秒后结束

但是当我使用这段代码时

 for (int i = 0; i < 10000; i++)
  {
      Entity e = new Entity();
      e.DisplayValue = i.ToString();
      ctx.Entities.InsertOnSubmit(e);
      ctx.SubmitChanges();
  }

它在大约50秒后结束

我怎样才能做第二个例子,因为它更适合我?

1 个答案:

答案 0 :(得分:2)

每次调用SubmitChanges时,Linq-to-Sql都会检查每个对象是否有跟踪的更改,因此将更改更改为1个对象,然后迭代相同的更改10000次并调用SubmitChanges将指数增加Linq所需的时间-to-Sql处理更改,因为每次都要添加一个额外的项目。