【发布时间】:2011-02-22 15:15:29
【问题描述】:
关于lazy="extra" 到底能做什么有很好的解释吗?
我看到的所有帖子都只是重复这样一个事实,即它将对 MyObject.ItsCollection.Count 的引用转换为 select count(*) 查询(假设它们尚未加载)。
我想知道它是否能够做更强大的事情,比如将 MyObject.ItsCollection.Any(o => o.Whatever == 5) 变成 SELECT ...EXISTS 查询。
docs 的第 18.1 节仅涉及它。我不是 NH 开发人员,所以如果不做一些工作来设置所有内容,我就无法真正尝试它并观看 SQL Profiler;我只是在寻找某种参考来描述此功能的功能。
谢谢!
【问题讨论】:
-
当 Any() 迭代集合时,它通过 IEnumerable
接口进行。 NHibernate 无法知道迭代是由 Any() (或 Where() 或其他)执行的,因此别无选择,只能获取所有元素。它无法检测到谓词。
标签: nhibernate