簡體   English   中英

nHibernate:具有復合鍵的多對一映射中的默認值

[英]nHibernate: default value in a many-to-one mapping with composite keys

我在舊數據庫上工作,無法更改。
我有一個表(Table1)與另一個具有復合鍵的表(Table2)具有多對一關系。
如果一切都陷入困境,則table1的映射應如下所示:

<class name="Table1" table="Table1">
  <id name="Id" column="I_ID"></id>
  <many-to-one name="Table2" class="Table2">
    <column name="I_TABLE2_ID1"></column>
    <column name="I_TABLE2_ID2"></column>
  </many-to-one>
</class>

我的問題是我在表1中沒有I_TABLE2_ID2列。
所以我想改用默認值。 在映射文件中有什么方法可以做到這一點?

編輯1:
以下映射似乎有效:

<class name="Table1" table="Table1">
  <id name="Id" column="I_ID"></id>
  <property name="Table2Id1" column="I_TABLE2_ID1"></property>
  <bag name="Table2" where="I_ID2 = 12">
    <key column="I_ID1" property-ref="Table2Id1"></key>
    <one-to-many class="Table2"/>
  </bag>
</class>

另外我還不得不將Table2屬性的類型更改為IList,但是我想我可以使用私有屬性來使實體看起來更好...

也許您應該將此關系指定為one-to-many關系,並在集合上指定where子句。

http://www.nhforge.org/doc/nh/zh-CN/index.html#collections-mapping

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM