Nhibernate вопрос о расширении объекта без изменения исходного отображения - PullRequest
0 голосов
/ 06 октября 2009

Скажем, у меня есть cms только с одним объектом с именем Article (для примера) с идентификатором и заголовком. Эта реализация CMS становится частью структуры и используется в качестве библиотеки: например, CMSFactory.CMS.SaveArticle (а);

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

1 Ответ

0 голосов
/ 07 октября 2009

Вы можете создать подкласс Article с конкретными полями для проекта:

class SpecialArticleForThisProject: Article {
  public DateTime SomeDate {get;set;}
}

и отображение SpecialArticleForThisProject с использованием одной из трех стратегий отображения наследования .

Базовая библиотека CMS не потребует каких-либо изменений.

...