NHibernate 为单个查询启用延迟加载

NHibernate enable lazy loading for single query

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

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

/.../

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

是否可以"locally" 启用 仅对单个 Linq 查询进行延迟加载?

HBM 映射文件必须保持完整。

嗯,我不认为它可以通过 LINQ 实现,但是你可以使用 NHibernate 的 ICriteria 来实现你想要的。示例可能如下所示。

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

可以找到有关 ICriteria 的更多信息:https://nhibernate.info/doc/nhibernate-reference/querycriteria.html