一个问题: 为什么我使用以下代码
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秒后结束
我怎样才能做第二个例子,因为它更适合我?
答案 0 :(得分:2)
每次调用SubmitChanges时,Linq-to-Sql都会检查每个对象是否有跟踪的更改,因此将更改更改为1个对象,然后迭代相同的更改10000次并调用SubmitChanges将指数增加Linq所需的时间-to-Sql处理更改,因为每次都要添加一个额外的项目。