NHibernate通过外键将子类属性映射到另一个对象
我正在处理一个不完美的现有数据结构,我有一个继承映射问题需要解决 我在每个层次结构中使用一个表,并设置了带有鉴别器的子类。但是,子类属性是返回到其他表的外键。如何设置子类映射,以便在查询fk属性时获得对象而不是null?这可能吗 我当前的映射NHibernate通过外键将子类属性映射到另一个对象,nhibernate,mapping,subclass,Nhibernate,Mapping,Subclass,我正在处理一个不完美的现有数据结构,我有一个继承映射问题需要解决 我在每个层次结构中使用一个表,并设置了带有鉴别器的子类。但是,子类属性是返回到其他表的外键。如何设置子类映射,以便在查询fk属性时获得对象而不是null?这可能吗 我当前的映射 <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MVC3" nam
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MVC3" namespace="MVC3.Models">
<class name="Image" table="Images">
<id name="Id" column="ImageId">
<generator class="identity" />
</id>
<discriminator column="ImageType" />
<property name="Url" column="Url" not-null="true" />
<property name="Caption" column="Caption" />
<subclass name="AupairImage" discriminator-value="AupairImage">
<join table="Aupairs" inverse="true">
<key column="AupairId" />
<many-to-one name="Aupair" column="AupairId" class="Aupair" />
</join>
</subclass>
<subclass name="FamilyImage" discriminator-value="FamilyImage">
<join table="Families" inverse="true">
<key column="FamilyId" />
<many-to-one name="Family" column="FamilyId" class="Family" />
</join>
</subclass>
我想添加实体图,但我还无法发布图像:0
但是外键AupairId和FamilyId链接回另外两个表,并且类型为int 32
我知道最好是重新构造Aupair和Family实体,使其具有层次结构,以摆脱图像中的层次结构,但由于现有代码,这将是最后的选择
提前感谢您的地图专家提供的任何帮助……再次查看后意识到我做错了什么,应该在子类下使用多对一,并定义一个列
<subclass name="MVC3.Models.FamilyImage, MVC3" discriminator-value="FamilyImage">
<many-to-one cascade="all" class="MVC3.Models.Family, MVC3" name="Family">
<column name="FamilyId" />
</many-to-one>
</subclass>