Получение исходных значений измененных ссылок - PullRequest
2 голосов
/ 10 февраля 2009

Я выяснил, как использовать ObjectStateManager и ObjectStateEntries для определения исходных значений скалярных свойств для данной сущности.

Теперь мне нужно знать, как сделать то же самое для свойств навигации. Метод GetModifiedProperties в ObjectStateEntry не возвращает свойства навигации.

1 Ответ

0 голосов
/ 20 мая 2012

Просто получите все добавленные или удаленные ObjectStateEntries и затем используйте LINQ, чтобы получить только те, которые представляют отношения:

private IEnumerable<ObjectStateEntry> GetModifiedRelationshipEntries()
{
    return ObjectStateManager.GetObjectStateEntries(
            EntityState.Added | EntityState.Deleted)
            .Where(e => e.IsRelationship);
}

Я нашел эти две записи блога Дэниела Симмонса очень полезными при написании журнала аудита для EF:

http://blogs.msdn.com/b/dsimmons/archive/2008/01/16/ef-extension-method-extravaganza-part-i-objectstateentry.aspx

http://blogs.msdn.com/b/dsimmons/archive/2008/01/17/ef-extension-methods-extravaganza-part-ii-relationship-entry-irelatedend.aspx

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