NHibernate多个主键映射

Pat*_*ers 5 nhibernate

我有一张叫做"Orderrow"的桌子.Orderrow有一个复合主键(CPK),其中包含以下列:OrderId,ProductId,RowNumber

OrderId和ProductId也是引用Order和Product表的外键.RowNumber在应用程序中生成.

我想知道它是如何在NHibernate中映射的,因为我只能设置1个id元素和1个生成器子元素.

Dan*_*Dan 9

以下是在NHibernate映射文件中使用composite-id属性的示例:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Domain" namespace="Domain.Model">

  <class name="Program" table="program">
    <composite-id>
      <key-property name="Id" column="id"></key-property>
      <key-property name="Prog" column="prog"></key-property>
      <key-property name="Site" column="site"></key-property>
    </composite-id>
    <property name="ActiveDate" column="active_date"/>
    <property name="Year" column="year"/>
  </class>

</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)


Nat*_*anD 6

您可以在类映射中使用"composite-id"属性,而不是"id"属性.但是,您应该知道nHibernate团队强烈反对使用它.听起来您正在处理遗留数据库,在该数据库中您无法控制架构.因此,'composite-id'专门针对您的情况.

有关更多信息,请查看NH文档:http://nhibernate.info/doc/nh/en/index.html