c# - NHibernate 为单个查询启用延迟加载
问题描述
在 .hbm 映射文件中,我有以下设置:
<set name="Fields" table="Fields" lazy="false" cascade="all" inverse="false">
/.../
此集合的延迟加载已全局禁用
它是一种“本地”仅对单个 Linq 查询启用延迟加载的方法吗?
HBM 映射文件必须保持不变。
解决方案
好吧,我认为 LINQ 无法实现,但您可以使用 NHibernate 的 ICriteria 来实现您想要的。一个例子可能如下所示。
ISession.CreateCriteria<Entity>()
.SetFetchMode("Fields", FetchMode.Lazy)
.List<Entity>();
有关 ICriteria 的更多信息,请参见:https ://nhibernate.info/doc/nhibernate-reference/querycriteria.html
推荐阅读
- java - 使用 SOAP 操作生成 SOAP 服务
- php - 重新验证我在 php 中的登录不起作用
- hive - 有没有一种简单快捷的方法来动态转换蜂巢表?
- laravel - 具有行数的 Laravel 分页
- airflow - 如何获取composer数据文件夹的GCS路径
- firebase - Flutter:如何在应用的不同页面放置登录和注销功能?
- android - NoSuchMethod:org.jetbrains.kotlin.resolve.diagnostics.DiagnosticSuppressor$Companion.getEP_NAME()Lcom/intellij/openapi/extensions/ExtensionPointName;
- php - 添加验证后PHP不显示错误并且不插入任何错误
- android - 无法阻止统一应用程序的屏幕截图
- sql-server - SSIS 转换:SQL 子查询到 SSIS 任务