我想知道是否有人尝试在 NHibernate 中这样做。
我有下表(简化版本)。
城市:
城市 (varchar2) (PK)
省份 (varchar2) (PK)
城市_TL:
城市 (varchar2) (PK)
省份 (varchar2) (PK)
郎(字符(2))(PK)
地点:
位置 (varchar2) (PK)
其他一些专栏。
正如您所看到的,CITY 和 LOCATION 之间没有关系。
然而,它的设置方式 CITY.Province 可以等于
地点。地点。所以,我可以执行这样的查询:
选择 c.*
从c市出发
在 c.city = ctl.city 上加入 city_tl ctl
将位置 l 加入 l.location = c.province
我如何在 NHibernate 中做到这一点?这可行吗?
这是我的城市和位置的映射文件
CITY:
<?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?