给定表格:
TableA
aId
...
TableB
bId
...
TableC
aId
cId // Maps to TableB.bId
换句话说,TableA 和 TableB 仅通过 TableC 中的条目相关联。
我想要以下课程:
public class ClassA
{
aId
...
}
public class ClassB
{
bId
...
}
public class ClassD : ClassA
{
ClassB
}
因此,ClassD 具有 ClassA 的所有属性,并添加了 ClassB 的单个实例。
我最初的想法是使用:
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping auto-import="false" xmlns="urn:nhibernate-mapping-2.2">
<class name="ClassD" lazy="false" table="TableA" polymorphism="explicit">
<id name="aId" column="aId" type="Guid">
<generator class="CustomGuidGenerator" />
</id>
...
<many-to-one name="ClassB" column="cId" class="ClassB" cascade="all" not-found="ignore" />
</class>
</hibernate-mapping>
显然,在这个映射中,TableA 中没有 cId,也没有多对一的方式来指定表。那么,如何通过中间连接表映射单个实体呢?