C# 不理解EF DBContext操作

C# 不理解EF DBContext操作,c#,entity-framework,dbcontext,savechanges,C#,Entity Framework,Dbcontext,Savechanges,Microsoft文档()说明: 修改后的实体在数据库中更新,然后在SaveChanges返回时保持不变 但是,当我在DBContext上执行SaveChanges时,在此之前处于修改状态的项在调用之后仍然处于修改状态 事实上,当我试图在以下循环中手动将项的状态更改为“未更改”时,在每个循环迭代结束时,它们都会更改回“已修改”: foreach(DbEntityEntry Item in Context.ChangeTracker.Entries()) Item.State = Enti

Microsoft文档()说明:

修改后的实体在数据库中更新,然后在SaveChanges返回时保持不变

但是,当我在DBContext上执行SaveChanges时,在此之前处于修改状态的项在调用之后仍然处于修改状态

事实上,当我试图在以下循环中手动将项的状态更改为“未更改”时,在每个循环迭代结束时,它们都会更改回“已修改”:

foreach(DbEntityEntry Item in Context.ChangeTracker.Entries())
    Item.State = EntityState.Unchanged;

这是一个bug还是我缺少了什么?

您是否尝试过
Context.Entry(Item).State=EntityState.Unchanged相反?您是否正在检查
SaveChanges()
中的返回值?为什么需要检查状态?假设记录已实际保存,
状态
是一种内部表示,而不是您真正应该触摸的东西。考虑到每个事务都应该创建一个新的DbCurror,那么该状态将永远是“新鲜”的。请您提供更多的代码吗?JCURZ:使用该符号没有区别。