EF4是否始终为所有相关实体生成更新语句,即使只有一个实体实际更改了?

时间:2012-02-18 00:00:20

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

.NET 4,EF 4

我有两个相关的实体,Order和OrderLine。订单包含(有参考)OrderLine。

Public Class Order

    Public Property OrderLine

End Class

数据库中的每个实体都有一个表(订单表,订单行表)。每个表都有一个时间戳列,EF4模型使用ConcurrencyMode = Fixed设置为每列的时间戳表。

我对订单进行了更改,但保持OrderLine不变。当我调用SaveChanges时,看起来EF4会为OrderLine生成更新查询,即使它没有任何变化。最终结果是OrderLine的时间戳由数据库更新以响应EF4 Update命令,但没有其他任何更新,因为OrderLine上没有任何更改。

这是EF4应该处理的方式吗?如果是,为什么?

1 个答案:

答案 0 :(得分:1)

This is a known bug in EF4,您可以尝试与MS联系以获取修补程序。您可以在保存,保存,然后重新附加实体作为变通方法之前分离未修改的实体。据我所知,它似乎已在.NET Framework 4.5的开发人员预览版中修复,但未获得生产使用许可。