NHibernate 2.0在composite-id中映射复合id

时间:2010-09-21 21:22:53

标签: c# .net nhibernate

我有一个表1 TAS:

<class name="TAS" table="NCPTB016_TAS">
<composite-id>
  <key-many-to-one column="NU_MACRO_PROCESSO_007" name="MacroProcesso"/>
  <key-property column="NU_TAS" name="Id" />
</composite-id>
... //and some other properties

我有一张表:

<class name="STAS" table="NCPTB017_STAS">
<composite-id>
  <key-many-to-one column="NU_MACRO_PROCESSO_016" name="MacroProcesso"/>
  <key-many-to-one column="NU_TAS_016" name="TAS" />
  <key-property column="NU_STAS" name="Id" />
</composite-id>
... //some properties

表STAS是复合ID。它是TAS密钥(即复合ID)和另一个密钥。 我该如何映射? 当我这样做的时候,我得到了一个错误:

外键(FK451D68E632669A4:NCPTB017_STAS [NU_TAS_016]))必须与引用的主键具有相同的列数(NCPTB016_TAS [NU_MACRO_PROCESSO_007,NU_TAS])


更简单一点, 我如何映射具有复合id的多对一???

例: Table1具有compososite-id Id1和Id2 Table2与table1有多对一的关系,因为它有一个复合FK,Id1和Id2来自table1 ...

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

从未使用它,但我会这样说:

<many-to-one ...>
  <column name="key1" />
  <column name="key2" />
</many-to-one>