我有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>