首页 > 解决方案 > NHibernate 为单个查询启用延迟加载

问题描述

在 .hbm 映射文件中,我有以下设置:

<set name="Fields" table="Fields" lazy="false" cascade="all" inverse="false">

/.../

此集合的延迟加载已全局禁用

它是一种“本地”仅对单个 Linq 查询启用延迟加载的方法吗?

HBM 映射文件必须保持不变。

标签: c#.netnhibernatehibernate-mappinghbm

解决方案


好吧,我认为 LINQ 无法实现,但您可以使用 NHibernate 的 ICriteria 来实现您想要的。一个例子可能如下所示。

ISession.CreateCriteria<Entity>()
        .SetFetchMode("Fields", FetchMode.Lazy)
        .List<Entity>();

有关 ICriteria 的更多信息,请参见:https ://nhibernate.info/doc/nhibernate-reference/querycriteria.html


推荐阅读