NHibernate映射与forking继承模型

时间:2010-09-14 04:00:28

标签: c# nhibernate hibernate nhibernate-mapping

我刚刚开始使用NHibernate并且正在尝试为我的模型进行映射。 (这是模型优先,TDD方法,现在只创建数据库)

My Class hierachy类似于:

My Class Hierachy

我正在尝试使用映射xml文件来解决如何映射这个问题?

这是我的表格以及我希望他们映射到

的内容

QuestionId - Int - [Question.Id]

PmqccFormId - Int - [Question.PmqccForm.Id]

InputtedAnswer - Int - [NormalQuestion.InputtedAnswer或JobVelocityQuestion.InputtedAnswer - 它们都是将转换为/从int转换的枚举,如果需要,可以将它们分成单独的列]

ResponsibleStaffId -Int - [PiAlertQuestion.ResponsibleStaffMember.Id]

说明 - varchar - [Question.Explanation]

QuestionType - varchar - [Discriminator]

我不确定如何映射这个,因为它有点问。有一堆更多'问题'对象,它们都继承自YesNoQuestion或NormalQuestion,但不再添加属性,只是方法实现。

我猜我有一个问题基类,然后有那个?棘手的一点是继承自Question的JobVelocityQuestion。谁能指出我正确的方向?

1 个答案:

答案 0 :(得分:1)

这应该让你开始:

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

我做了很多假设,但它应该有效。随意进一步询问。