如何防止实体框架调用更新存储过程,即使没有任何更改?

时间:2011-01-20 17:37:26

标签: .net entity-framework .net-4.0

我有一个实体A,它通过属性prop链接到实体B.该关系是1-n关系(表中对应于A的外键)。

关系是双向的(B有一个属性,列出与prop相关的所有A)。

我们已经能够确定,在这种情况下,saveChanges方法调用正在调用B表的update存储过程,即使表中的所有列都没有更改。

这是正常/预期的吗?有人应该如何避免它?

编辑:我检查了“A”和“B”对象的状态标志,并且正如预期的那样,“B”对象处于“未更改”状态。

编辑2 :感谢大家告诉我有关更新标志的信息(我不知道如何访问该信息) - 这让我找到了这个链接,更详细地描述了我的问题:

Entity Framework 4 Entity with EntityState of Unchanged firing update

1 个答案:

答案 0 :(得分:0)

http://support.microsoft.com/kb/2390624

上提到了一个修补程序

虽然该支持问题的描述与我描述的行为只是松散相关,但提供的修补程序也解决了我的问题。

该问题已在.NET Framework 4.5版中公开修复。对于.NET 4.0框架,我希望使用EF 6.0(目前处于测试阶段)也可以解决问题。