[英]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.