NHibernate 延迟加载 = 假
本文关键字:延迟加载 NHibernate | 更新日期: 2023-09-27 17:56:28
我lazy="false"
设置为集合并fetch="select"
,但我不明白为什么NHibernate
一直加载我的集合。
这是我的映射:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
namespace="Ortopedia.Entidades" assembly="Ortopedia">
<class name="Especialidade" table="TB_ESPECIALIDADE">
<id name="Id">
<column name="ID_ESPECIALIDADE" not-null="true" />
<generator class="increment" />
</id>
<property name="Nome" column="NOME" not-null="true" length="50" />
<set inverse="true" name="SubEspecialidades" cascade="none" fetch="select" lazy="false" >
<key column="ID_ESPECIALIDADE" />
<one-to-many class="Ortopedia.Entidades.SubEspecialidade" />
</set>
</class>
</hibernate-mapping>
这是我用来列出数据的代码:
ICriteria criteria = session.CreateCriteria(typeof(T));
criteria.SetMaxResults(1000);
IList<T> list = criteria.List<T>();
return list;
NHibernate
加载我的SubEspecialidades
属性,我不希望它加载。我在这里错过了什么?
如果您不希望最初加载 SubEspecialidades,则应使用:
lazy="true"
延迟加载意味着在代码中访问集合之前,不会从数据库中获取集合。因此,如果将其设置为 false,它将与其父对象(拥有该集合的任何对象)一起获取。