简体   繁体   中英

NHibernate mapping with forking inheritance model

I'm just starting out with NHibernate and am trying to do a mapping for my model. (this is a model-first, TDD approach, just creating the database now)

My Class hierachy is something like :

我的班级

I'm trying to work out how to map this now using a mapping xml file?

This is my table and what I want them to map to

QuestionId - Int - [Question.Id]

PmqccFormId - Int - [Question.PmqccForm.Id]

InputtedAnswer - Int - [NormalQuestion.InputtedAnswer or JobVelocityQuestion.InputtedAnswer - they are both enums that will be converted to/from ints, can separate these into separate columns if need be]

ResponsibleStaffId -Int - [PiAlertQuestion.ResponsibleStaffMember.Id]

Explanation - varchar - [Question.Explanation]

QuestionType - varchar - [Discriminator]

I'm not sure how to map this given it forks aa bit. There are a heap more 'Question' objects that all inherit from YesNoQuestion or NormalQuestion but don't add anymore properties, just methods implementations.

I'm guessing I have a for the Question base class and then have ones under that? the tricky bit is the JobVelocityQuestion inheriting from Question. Can anyone point me in the right direction?

This should get you started:

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

I made many assumptions, but it should work. Feel free to ask further.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM