NHibernate中的遗传和关联

NHibernate中的遗传和关联,nhibernate,inheritance,associations,Nhibernate,Inheritance,Associations,我有一个实体模型,其中继承结构中的基类与另一个类有关联,我想知道基类的子类型是否也会映射关联 关于更多信息,以下是系统这一部分的基本概述: Transport是基类,并且与Owner有关联。 自行车和汽车是两个子类 它们使用每个子类的表继承结构在3个具有相同名称的表中表示。传输表保存对所有者的外键引用 这就是映射应该如何工作的,对吗?我没有看到任何关于解决这个问题的报道,所以我认为这是一个很好的问题 <class name="Transport" table="TRANSPORT">

我有一个实体模型,其中继承结构中的基类与另一个类有关联,我想知道基类的子类型是否也会映射关联

关于更多信息,以下是系统这一部分的基本概述:

Transport是基类,并且与Owner有关联。 自行车和汽车是两个子类

它们使用每个子类的表继承结构在3个具有相同名称的表中表示。传输表保存对所有者的外键引用

这就是映射应该如何工作的,对吗?我没有看到任何关于解决这个问题的报道,所以我认为这是一个很好的问题

<class name="Transport" table="TRANSPORT">
    <id name="Id" type="Int64" column="Transport_ID">
        <generator class="native"/>
    </id>

    <many-to-one name="Owner" column="Owner_ID" /> 

    <joined-subclass name="Bike" table="BIKE">
        <key column="Bike_ID"/>
    </joined-subclass>
    <joined-subclass name="Car" table="CAR">
        <key column="Car_ID"/>
    </joined-subclass>
</class>

我只使用了hibernate for Java,所以一些特定的东西可能不适用于您的情况……但我认为这非常相似

父类中的所有映射属性(包括关联)都可以访问。请注意,您可以拥有未在XML或注释中映射的超类—这些超类中的属性根本不会存储在数据库中

在共享查询(即对传输类型的查询)与延迟加载相结合的情况下,您可能会遇到一个问题,在某些情况下,hibernate会专门为超类型创建代理,您无法使用该代理从祖先访问任何属性。否则,一切都应该像你期望的那样工作