NHibernate总是创建一个代理 - 但它不应该

时间:2012-08-08 15:02:33

标签: nhibernate proxy nhibernate-mapping lazy-loading

我有NHibernate和延迟加载的问题。 NHibernate总是为多对一属性创建代理 - 但我需要一个真实的实体。

我有一个实体用户,它是ContactRole的子类。 ContactRole与联系人有多对一的联系。现在,当我加载用户时,我将始终为Contact-Property获取ContactProxy。

有人知道,为什么会这样?

这是我的映射:

<class name="Contact" table="Contact" lazy="true"  >
   <cache usage="read-write"/>
   <id name="Id" column="Id" type="Guid">       
       <generator class="assigned"/>
   </id>
   <property name="Name" column="Name" type="String" length="100"  />
   <set name="ContactRoles" lazy="true" inverse="true" cascade="none" >
      <key>
         <column name="ContactId"/>
      </key>
      <one-to-many class="ContactRole"/>
   </set>
</class>

<class name="ContactRole" table="ContactRole" lazy="true"  >
    <cache usage="read-write"/>
    <id name="Id" column="Id" type="Guid">      
                    <generator class="assigned"/>
    </id>
    <property name="Dummy" column="Dummy" type="String" length="50"  optimistic-lock="false"  />
    <many-to-one  name="Contact" class="Contact" foreign-key="FK_Contact_ContactRole" lazy="no-proxy" fetch="join">
        <column name="ContactId"/>
    </many-to-one>
    <many-to-one  name="Role" class="Role" foreign-key="FK_Role_ContactRole" lazy="no-proxy" fetch="join">
        <column name="RoleId"/>
    </many-to-one>
    <joined-subclass name="User" table="User" lazy="false" >
        <key column="Id" foreign-key="FK_User_Id"/>
        <property name="UserName" column="UserName" type="String" length="255" not-null="true" unique="true" />
    </joined-subclass>
</class>

0 个答案:

没有答案