2011-04-14 33 views
1

在EntityFramework 4.1中,SaveChanges不會減少context.ChangeTracker.Entries()。Count。這是正常的嗎?它是否有任何開銷?EntityFramework 4.1 ChangeTracker.Entries.Count&SaveChanges

要說清楚,說我必須更新一些客戶的郵政編碼。所以,我有下面的代碼。

using (CustomerContext ctx = new CustomerContext()) 
      { 
       var customers = ctx.Customers.Where(a => a.ZipCode = 12345); 
       foreach (var customer in customers) 
       { 
        customer.ZipCode = 54321; 
        ......... 
        ctx.SaveChanges(); //ctx.ChangeTracker.Entries().Count is NOT set to zero 
       } 
      } 

我在4.0想到,ObjectStateManager復位的SaveChanges上()計數爲零,但在4.1 ChangeTracker.Entries()。計數不。讓我知道原因。謝謝。

回答

1

這是絕對正常的。保存更改後,所有實體都保持連接到上下文。只有在保存更改期間被刪除的實體纔會被分離。修改條目的狀態是默認行爲從Modified/Added更改爲UnchangedObjectStateManager表現完全相同。 DbChangeTracker只是建立在ObjectStateManager之上。

相關問題