Крюковое событие загрузки объекта в Entity Framework? - PullRequest
3 голосов
/ 04 декабря 2008

Существует ли EF, эквивалентный частичному OnCreated LINQ to SQL?

Некоторые из моих объектов имеют поля XML, которые я хотел бы анализировать всякий раз, когда объект загружается из БД, - я хотел бы поместить данные XML в более дружественные строго типизированные коллекции. Я уже пометил поле XML как личное и перехватил событие SavingChanges, чтобы перестроить XML перед тем, как элемент будет передан обратно в базу данных, но я не могу понять, как заполнять коллекции, когда объект загружается.

Я думал об использовании частичного OnFieldChanged для моего поля XML, но он будет запускаться снова всякий раз, когда поле XML перестраивается во время SavingChanges, поэтому кажется, что должен быть лучший способ.

Ответы [ 3 ]

3 голосов
/ 19 сентября 2011

Или используйте событие ObjectContext.ObjectMaterialized в .net 4.0

2 голосов
/ 04 декабря 2008

Насколько я знаю, нет события OnLoaded или подобного. Обходным путем может быть предоставление коллекций в качестве свойств и ленивое создание / анализ значений при первом доступе:

private List<SomeData> _parsedDataCache;
public IList<SomeData> ParsedData {
    get {
        if (_parsedDataCache == null)
            ParseData();
        return _parsedDataCache;
    }
}
0 голосов
/ 01 июля 2010

Вы должны создать частичный класс (как вы это делаете в LINQ to SQL) и просто использовать конструктор по умолчанию.

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