我一直在看NHProf Nhibernate探测器(真的很棒的工具,但不幸的是我的价格太高了)。它引发了一个警告,即我的查询类型(子集合)有一个“无界结果集”(子集合)(热切地获取子集合):
ICriteria criteria = session.CreateCriteria<SomeType>()
.SetFetchMode("ChildCollection", FetchMode.Eager)
.Add(Restrictions.IdEq(id));
我的问题是, 应如何处理此类查询?有没有办法以某种方式限制急切的结果?
我认为另一个问题是,如果收集有限,如何在需要时访问更多结果? (我的意思是我猜你填充后没有加载延迟)。如果我没有清楚地解释自己,请告诉我!
感谢。
答案 0 :(得分:1)
你可以page over the collection但是如果你知道收集不会很大,那么我就会忽略那个警报。还有batch-size
collection mapping参数。