Добавление пользовательского свойства в мою модель EF4 - PullRequest
0 голосов
/ 13 мая 2010

Допустим, у меня есть две таблицы в SQL, из которых я хочу получить модель EDMX, сгенерированную (на данный момент, для автоматической генерации для всего) с использованием шаблонов POCO T4. Скажем, две наши таблицы Person (ID, FName, LName) и Comment (ID, PersonID, CommentText, CommentDate) с отношением один-ко-многим между ними (то есть вы можете сделать много комментариев об одном человеке).

Получение моих сущностей POCO сгенерировано из этого тривиально и прекрасно работает. Однако сейчас я не знаю, как это сделать, - добавить к моей сущности Person настраиваемое свойство навигации, которое представляет самый последний комментарий для этого человека (в конечном итоге что-то еще более сложное, чем это в конечном итоге потребуется). Пока все в порядке, что он доступен только для чтения, но было бы неплохо узнать, как обрабатывать записываемое свойство.

Как правильно это сделать? Следует учитывать, что я сериализирую эти сущности, поэтому мне нужно, чтобы они были загружены и сохранены таким образом, чтобы я мог вытолкнуть их в свой пользовательский интерфейс с WCF посередине (т. Е. Собственноручное свойство класс расширения, основанный на отложенной загрузке, не поддерживается).

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

1 Ответ

2 голосов
/ 13 мая 2010

Добавить недвижимость легко. Поместите его в частичный класс, названный так же, как сущность. Но если ваша собственность выглядит так:

get
{
     return this.Comments.OrderByDescending(c => c.CommentDate).FirstOrDefault();
}

... тогда это будет работать, но вы не можете использовать его в запросе L2E.

Если вам нужна поддержка L2E, вы можете использовать эту технику .

...