Мне было интересно, пытался ли кто-нибудь сделать это в NHibernate.
У меня есть следующие таблицы (упрощенная версия).
ГОРОД:
город (varchar2) (PK)
провинция (varchar2) (PK)
CITY_TL:
город (varchar2) (PK)
провинция (varchar2) (PK)
lang (char (2)) (PK)
РАСПОЛОЖЕНИЕ:
местоположение (varchar2) (PK)
какой-то другой столбец.
Как видите, между ГОРОДОМ и РАСПОЛОЖЕНИЕМ нет никакой связи.
Тем не менее, он был создан таким образом, что CITY.Province может быть равен
LOCATION.Location. Итак, я могу выполнить запрос следующим образом:
выберите c. *
из города с
присоединиться к city_tl ctl на c.city = ctl.city
присоединиться к местоположению l на l.location = c.province
Как мне это сделать в NHibernate? Это вообще выполнимо?
Вот мои файлы сопоставления для CITY и LOCATION
Город:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHDAL"
namespace="NHDAL.Domain">
<class name="CityTL" table="CITY_TL">
<composite-id>
<key-property column="CITY" type="String" name="Name"/>
<key-property column="PROVINCE" type="String" name="Province"/>
<key-property column="LANG" type="String" name="Lang" />
</composite-id>
<timestamp
column="MODIFY_DATE"
name="ModifyDate"
access="property"
unsaved-value="null"/>
<property name="ProvinceDescription" column="PROVINCE_TL"
type="String" not-null="true" />
<property name="Description" column="CITY_TL" type="String" not-
null="true"/>
<property name="SortOrder" column="SORT_ORDER" type="Int32" not-
null="false"/>
<many-to-one name="City" class="City">
<column name="CITY"/>
<column name="PROVINCE"/>
</many-to-one>
</class>
</hibernate-mapping>
РАСПОЛОЖЕНИЕ:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHDAL"
namespace="NHDAL.Domain">
<class name="Location" table="LOCATION">
<id column="LOCATION" name="Name">
<generator class="assigned" />
</id>
<timestamp
column="MODIFY_DATE"
name="ModifyDate"
access="property"
unsaved-value="null"/>
</class>
</hibernate-mapping>
Может кто-то пролить свет на это и сказать мне, что должен запрос
как выглядит в NHibernate?