同一表中字段的NHibernate映射实体

同一表中字段的NHibernate映射实体,nhibernate,Nhibernate,我有一个带有字段的成员表 MemID-主键 企业名称 营业地址 商务电话 我需要创建一个Employer类,它的属性来自同一个Members表。 雇员姓名 雇员地址 雇员电话 这是我的雇主 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true"> <class name="Employer, Entities" lazy="true" table="Members" dynamic-upd

我有一个带有字段的成员表
MemID-主键
企业名称
营业地址
商务电话

我需要创建一个Employer类,它的属性来自同一个Members表。
雇员姓名
雇员地址
雇员电话

这是我的雇主

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="Employer, Entities" lazy="true" table="Members" dynamic-update="true">
        <id name="MemberID" column="MemID" type="Int64">
            <generator class="native" />
        </id>
        <many-to-one name="EmployerAddress" column="Business_Address" class="Address, Entities" lazy="proxy" />
        <many-to-one name="EmployerPhone" column="Business_Phone" class="Phone, Entities" lazy="proxy"/>
        <property name="EmployerName" column="Business_Name" not-null="false" />
    </class>
</hibernate-mapping>

我以为我可以像这样映射Members类,但是我得到了一个“System.Collections.Generic.KeyNotFoundException:字典中不存在给定的键。”



也请注意。由于当前系统的限制,我无法将业务信息移动到另一个表。Business\u Address和Business\u Phone是FK到另一个表的,这就是为什么它们是多对一映射。

我不确定这是否是您要查找的,但您可以尝试“组件”映射。这允许您在同一个表中有一个嵌套类


在google上搜索“nhibernate组件”-hibernate.org网站似乎仍处于关闭状态(!),但您可能可以从google缓存中获取“第7章-组件映射”页面的组件信息。

太棒了,我很高兴这有帮助!
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true">
<class name="Member, Entities" lazy="true" table="Members" dynamic-update="true">
<id name="MemberID" column="MemID" type="Int64">
<generator class="native" />
</id>
<one-to-one name="EmployerInformation" class="Employer, Entities"  lazy="false"/>
    </class>
</hibernate-mapping>