2

1 つの質問: 次のコードを使用する理由

 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秒で終了

それは私にとってより適しているので、どうすればより速い2番目の例を行うことができますか?

4

1 に答える 1

2

SubmitChanges を呼び出すたびに、Linq-to-Sql は追跡された変更についてすべてのオブジェクトをチェックするため、1 つのオブジェクトに変更を加えますが、同じ変更を 10000 回繰り返して SubmitChanges を呼び出すと、Linq-to-毎回余分なアイテムを追加しているため、SQL を使用して変更を処理します。

于 2010-06-04T10:31:11.657 に答える