Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EntityFramework 4.1 ChangeTracker.Entries.Count&;保存更改_Entity Framework_Entity Framework 4.1 - Fatal编程技术网

Entity framework EntityFramework 4.1 ChangeTracker.Entries.Count&;保存更改

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

在EntityFramework 4.1中,SaveChanges并没有减少context.ChangeTracker.Entries()的计数。这正常吗?有开销吗

说清楚一点,比如说我必须更新一些客户的邮政编码。因此,我有如下代码

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
之上