Entity framework EntityFramework 4.1 ChangeTracker.Entries.Count&;保存更改
在EntityFramework 4.1中,SaveChanges并没有减少context.ChangeTracker.Entries()的计数。这正常吗?有开销吗 说清楚一点,比如说我必须更新一些客户的邮政编码。因此,我有如下代码Entity framework EntityFramework 4.1 ChangeTracker.Entries.Count&;保存更改,entity-framework,entity-framework-4.1,Entity Framework,Entity Framework 4.1,在EntityFramework 4.1中,SaveChanges并没有减少context.ChangeTracker.Entries()的计数。这正常吗?有开销吗 说清楚一点,比如说我必须更新一些客户的邮政编码。因此,我有如下代码 using (CustomerContext ctx = new CustomerContext()) { var customers = ctx.Customers.Where(a => a.ZipCo
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()中,计数不是零。告诉我原因。谢谢。这绝对正常。保存更改后,所有实体仍附着到上下文。仅分离保存更改期间删除的实体。修改条目的状态是默认行为从
modified
/Added
更改为Unchanged
<代码>ObjectStateManager的行为完全相同DbChangeTracker
只是构建在ObjectStateManager
之上,这是绝对正常的。保存更改后,所有实体仍附着到上下文。仅分离保存更改期间删除的实体。修改条目的状态是默认行为从modified
/Added
更改为Unchanged
<代码>ObjectStateManager的行为完全相同DbChangeTracker
只是构建在ObjectStateManager
之上