【发布时间】:2015-07-29 00:03:20
【问题描述】:
将Take() 与连接一起使用时出现一些奇怪的行为。假设如下示例:
Comment comment = null;
var persons = _repository
.QueryOver()
.Left.JoinAlias(x => x.Comments, () => comment)
.Where(x => x.Age > 20)
.Take(5)
.Future()
.ToList();
我希望5 人出现在数组中,并且每个人都有一个N comments 列表。
但是,结果给出5 人,最多5 cmets。
为什么.Take(5)也限制了cmets的数量?
如何达到预期的效果?
【问题讨论】:
-
这是一个经典的笛卡尔积问题。 NH 不会分页根,而是分页根 + 子级。就像 Radim 已经通过分页和延迟加载来回答 fetch parents 与批处理孩子一样
标签: nhibernate fluent-nhibernate queryover