Entity framework 自动检测可更改的行为

Entity framework 自动检测可更改的行为,entity-framework,change-tracking,Entity Framework,Change Tracking,我这里有一个理论问题。我了解到DbContextConfiguration.AutoDetectChangesEnabled属性值决定是否启用上下文中更改的自动检测。但是,我将其设置为false,即使我没有手动调用DbChangeTracker.DetectChanges,上下文仍然保持更改 注意:当我更改一个实体的ICollection属性时(但当我更改一个导航属性时,即:myEntity.OtherEntity=myOtherEntity),它仍然会持续存在 所以,我想知道我学错了什么:)

我这里有一个理论问题。我了解到DbContextConfiguration.AutoDetectChangesEnabled属性值决定是否启用上下文中更改的自动检测。但是,我将其设置为false,即使我没有手动调用DbChangeTracker.DetectChanges,上下文仍然保持更改

注意:当我更改一个实体的ICollection属性时(但当我更改一个导航属性时,即:myEntity.OtherEntity=myOtherEntity),它仍然会持续存在

所以,我想知道我学错了什么:)

非常感谢


Giorgi发生这种情况是因为我手动将实体的状态设置为“修改”。这使得上下文保存了原语和导航属性的更改,但显然不足以更新集合属性。问题已解决。

您是否介意显示具有意外行为的代码
AutoDetectChangesEnabled=false
应该禁止保存已更改的内容,因此您的代码中可能存在一些扭曲,导致无论如何触发
DetectChanges
。是的,有一个扭曲,它是-我手动将实体的状态设置为EntityState.Modified。谢谢