繁体   English   中英

NHibernate Lazy Loading = false

[英]NHibernate Lazy Loading = false

我将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,它将与其父对象一起获取(无论集合拥有什么)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM