爲什麼DbContext ctx
在每個SaveChanges()
執行後更快處置?EF SaveChanges優化?
首先樣品:
var ctx = new DomainContext();
foreach (var item in deals)
{
DealsOfReutersAddition newDealAddition =
new DealsOfReutersAddition
{
DealsOfReutersId = item.DealsOfReutersId,
DealDate = DateTime.Parse(item.DateConfirmed ?? "01 01 01", new CultureInfo("en-US")),
};
ctx.DealsOfReutersAdditions.Add(newDealAddition);
ctx.SaveChanges();
}
ctx.Dispose();
第二樣品:
foreach (var item in deals)
{
DealsOfReutersAddition newDealAddition =
new DealsOfReutersAddition
{
DealsOfReutersId = item.DealsOfReutersId,
DealDate = DateTime.Parse(item.DateConfirmed ?? "01 01 01", new CultureInfo("en-US")),
};
var ctx = new DomainContext();
ctx.DealsOfReutersAdditions.Add(newDealAddition);
ctx.SaveChanges();
ctx.Dispose();
}
在1000行中第一估計8秒aganist 140秒第二樣品。 任何方式來清潔ctx,而不是重新創建?
我也只會調用'SaveChagnes'一旦這種工藝優化代碼。外環 – 2013-03-14 13:02:34
它估計在4.8秒 – FreeVice 2013-03-14 13:32:15
那麼你應該適當地做到:) – 2013-03-14 13:33:29