2

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

 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 秒后完成

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

4

1 回答 1

2

每次调用 SubmitChanges 时,Linq-to-Sql 都会检查每个对象的跟踪更改,因此对 1 个对象进行更改,但随后将相同的更改迭代 10000 次并调用 SubmitChanges 将成倍增加 Linq-to- 所需的时间Sql 来处理更改,因为您每次都添加一个额外的项目。

于 2010-06-04T10:31:11.657 回答