無法讓NHibernate生成正確的查詢。它一直使用我加入一對一關係的兩個表的主鍵,我無法弄清楚如何在其中一個表中指定外鍵。NHibernate一對一映射,非主鍵
tableA tableB
{ aID, { bID,
bID, z,
c, y,
d } x }
所以tableA應該使用tableA.bID = tableB.bID連接到tableB。我如何在tableA的映射中指定這個?我使用tableA類從tableA檢索一行,從tableB檢索一行,因爲它是一對一的關係。
NHibernate使用tableA.aID = tableB.bID生成sql連接表,這是錯誤的。
這不起作用:
<class name="tableA" table="tableA">
<id name="aID" column="aID" />
<property name="bID" column="bID" />
<property name="c" column="c" />
<property name="d" column="d" />
<one-to-one name="otherThing" class="tableB" foreign-key="bID" />
</class>
<class name="tableB" table="tableB">
<id name="bID" column="bID" />
<property name="z" column="z" />
<property name="y" column="y" />
<property name="x" column="x" />
</class>
謝謝。這工作。令人困惑的是,當它真的是一對一的映射時,我不得不使用多對一的元素。我還將獲取類型設置爲「連接」,以減少查詢次數。 – MonkeyWrench 2010-10-06 15:28:38
但是,是的,如果你能展示一個雙向的例子,那將是教育性的。 – MonkeyWrench 2010-10-06 15:29:15
你走了... – 2010-10-06 16:02:08