要實現內部連接,您必須在NHibernate映射中設置Store實體和Region實體之間的關係。
您無法使用QueryOver API指定用於連接的鍵。
你的類應該類似於此:
public class Region
{
public virtual int RegionID { get; set;}
public virtual IList<Store> Stores { get; set; }
}
public class Store
{
public virtual int StoreId { get; set;}
public virtual Region Region { get; set; }
}
而且你的映射都需要類似於此:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class xmlns="urn:nhibernate-mapping-2.2" name="YourNameSpace.Region, YourNameSpace" table="Region">
<id name="RegionID">
<column name="RegionID" />
<generator class="identity" />
</id>
<bag cascade="all" inverse="true" name="Stores">
<key>
<column name="RegionID" />
</key>
<one-to-many class="YourNameSpace.Store, YourNameSpace" />
</bag>
</class>
</hibernate-mapping>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class xmlns="urn:nhibernate-mapping-2.2" name="YourNameSpace.Store, YourNameSpace" table="Store">
<id name="StoreID">
<column name="StoreID" />
<generator class="identity" />
</id>
<many-to-one class="YourNameSpace.Region, YourNameSpace" name="Region">
<column name="RegionId" />
</many-to-one>
</class>
</hibernate-mapping>
感謝蘭迪!我開始懷疑,當我在互聯網上搜索沒有找到一個我想要的方式指定鍵的例子。有時,當你真正知道查詢將會是什麼時,感覺非常愚蠢,但是要求通過orm映射來完成。 – dreamerkumar