2
一对一的关系给定的表:NHibernate的地图与中间表
TableA
aId
...
TableB
bId
...
TableC
aId
cId // Maps to TableB.bId
换句话说表A表B和仅通过在表C中的条目相关。
我想下面的类:
public class ClassA
{
aId
...
}
public class ClassB
{
bId
...
}
public class ClassD : ClassA
{
ClassB
}
使D类拥有所有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>
显然,在这种映射关系,所以在表A没有CID也没有办法在许多到一个指定的表。那么,如何通过中间连接表映射单个实体?
对不起,如果我不清楚。是的,TableC.aId是对TableA.aId的引用。 ClassB确实有它自己的映射文件。 我真的很接近这个......我想。只需要做更多的测试。 –
终于搞定了!谢谢! –
@jbl很好的解决方案。真的,我没看到它! +;) –