我正在尝试急切地加载具有嵌套集合的实体。如下:
父 -> 子 1 -> 孙子 -> GreatGrandChildren
这是我的 4 次尝试之一(这是最有希望的):
Parent parent = null;
Child child = null;
GrandChild grandChild = null;
GreatGrandChild greatGreatChild = null;
var result = CurrentSession.QueryOver<Parend>(() => conj)
.Where(c => c.Id == id)
.JoinAlias(() => parent.Children, () => child)
.JoinAlias(() => child.GrandChild, () => grandChild)
.JoinAlias(() => grandChild.GreatGrandChildren , () => greatGrandChild)
.List<Parent>();
这会生成预期的 SQL,其中包含许多左外连接。由于加入,还返回了大约 800 个相同的父母。
但是,当我通过 for 循环中的代码访问第一个父级的列表时,数据库被无数次命中,完全忽略了前面的查询。
有任何想法吗?
信息:NHibernate 3.3;数据库:甲骨文;VS2012 - ASP.NET
谢谢