我有一個視圖將3個表連接在一起,我需要用一個NHibernate映射來替換,而不需要對數據庫進行任何更改。這可能嗎? 這是我的看法的一個簡單的例子:NHibernate:在連接表上映射連接
SELECT tblTable1.*,tblTable2.*,tblTable3.MyProperty FROM tblTable1
OUTER JOIN
tblTable2 ON tblTable1.Table1Key = tblTable2.Table1Key
OUTER JOIN
tblTable3 ON tblTable2.Table2Key = tblTable3.Table2Key
所以basicaly我們選擇tblTable1並加入tblTable2這對我的作品在NHibernate的。我的問題是tblTable3。我如何將它加入到連接表tblTable2的屬性中?
當我做這樣的映射時,出於某種原因,我得到一個試圖在Table1Key上加入tblTable3的查詢。
<class name="MyClass" table="tblTable1">
<id name="Table1Key">
<generator class="identity"/>
</id>
<property name="..." />
<join table="tblTable2">
<key column="Table1Key" />
<property name="..." />
</join>
<join table="tblTable3">
<key column="Table2Key???" />
<property name="..." />
</join>
</class>
謝謝,我會試試這個。但是,我必須爲聯合表格設置一個單獨的類別嗎?我不能只是映射到現有類的屬性? –
我沒有得到它與同一類(我不知道我是否完全理解你的例子),但現在它在一個子類中工作正常,這已經足夠好了。謝謝! –