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
在 .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