2
我试图急切地加载一个嵌套集合的实体。具体如下:NHibernate - 嵌套热切加载被忽略
父 - > Children1 - >如GrandChild - > 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; DB:Oracle; VS2012 - ASP.NET
感谢
我有同样的问题,你是否设法解决这个问题? 奇怪的是,它适用于MSSQL,但不适用于Oracle。 –