Обнаружить изменения в ObjectSet в Entity Framework 4.0? - PullRequest
3 голосов
/ 23 февраля 2011

Я хочу проверить, есть ли какие-либо изменения в таблице в EF 4.0 со следующим кодом:

var a = context.Users.GetHashCode();

AddNewUser();

context.SaveChanges();

var b = context.Users.GetHashCode();

a == b, я не знаю почему?

Любая помощь будет оценена!

Ответы [ 2 ]

4 голосов
/ 23 февраля 2011

GetHashCode имеет абсолютно различное использование . Вы не можете обнаружить изменения в ObjectSet, потому что это точка входа в соответствующие таблицы базы данных. Вы можете обнаружить изменения, подготовленные в ObjectContext, но только до того, как вы примете изменения (по умолчанию SaveChanges также принимает изменения). Чтобы получить изменения от ObjectContext, используйте:

context.ObjectStateManager.GetObjectStateEntries(...)
0 голосов
/ 23 февраля 2011

возможно, что GetHashCode не учитывает реальное содержимое элементов ObjectSet, вы не можете просто проверить счетчик в вашем случае или проверить измененное свойство?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...