Отображение NHibernate с моделью наследования разветвлений - PullRequest
0 голосов
/ 14 сентября 2010

Я только начинаю с NHibernate и пытаюсь сделать сопоставление для моей модели. (это модельный подход TDD, просто создание базы данных сейчас)

Иерархия моего класса выглядит примерно так:

My Class Hierachy

Я пытаюсь выяснить, как отобразить это сейчас, используя картографический xml-файл?

Это моя таблица, и я хочу, чтобы они отображались на

QuestionId - Int - [Question.Id]

PmqccFormId - Int - [Question.PmqccForm.Id]

InputtedAnswer - Int - [NormalQuestion.InputtedAnswer или JobVelocityQuestion.InputtedAnswer - они оба являются перечислениями, которые будут преобразованы в / из целых чисел, при необходимости их можно разделить на отдельные столбцы]

ResponsibleStaffId -Int - [PiAlertQuestion.ResponsibleStaffMember.Id]

Объяснение - varchar - [Вопрос. Объяснение]

QuestionType - varchar - [Дискриминатор]

Я не уверен, как отобразить это, учитывая, что он немного разветвляется. Есть еще куча объектов 'Question', которые все наследуются от YesNoQuestion или NormalQuestion, но больше не добавляют свойства, только реализации методов.

Я предполагаю, что у меня есть базовый класс для Вопроса, а затем есть под этим? хитрый бит - это JobVelocityQuestion, унаследованный от Question. Может кто-то указать мне верное направление?

1 Ответ

1 голос
/ 14 сентября 2010

Это должно помочь вам начать:

<class name="Question">
  ...
  <discriminator column="QuestionType"/>
  <subclass name="JobVelocityQuestion">
    <property name="InputtedAnswer"/>
  </subclass>
  <subclass name="NormalQuestion">
    <property name="InputtedAnswer"/>
    <subclass name="AsConsQuestion"/>
    ...
  </subclass>

Я сделал много предположений, но это должно сработать. Не стесняйтесь спрашивать дальше.

...