检测Entity Framework 4.0中ObjectSet的更改?

时间:2011-02-23 11:13:29

标签: c# entity-framework

我想使用以下代码检查EF 4.0中的表是否有任何更改:

var a = context.Users.GetHashCode();

AddNewUser();

context.SaveChanges();

var b = context.Users.GetHashCode();

a == b,我不知道为什么?

任何帮助都将不胜感激!

2 个答案:

答案 0 :(得分:4)

GetHashCode绝对different usage。您无法检测ObjectSet中的更改,因为它是相关数据库表的入口点。您可以检测在ObjectContext中准备的更改,但仅在您接受更改之前(默认SaveChanges也接受更改)。要从ObjectContext获取更改,请使用:

context.ObjectStateManager.GetObjectStateEntries(...)

答案 1 :(得分:0)

GetHashCode可能没有考虑ObjectSet项目的真实内容,你不能简单地检查你的情况下的计数或检查更改的属性吗?