我目前正在编写一个搜索后端,以获取每个人都有一组需要加载的子集合的人员子集。
如何才能让nhibernate急切地加载这些多个子集合? 目前,我遍历person集合逐个获取子集合。
我的班级看起来像这样(实际上我有5个IList但是2个足以显示问题):
public class Person
{
public virtual IList<Group> Groups { get; set; }
public virtual IList<Profile> Profiles { get; set; }
}
我的搜索查询如下:
var persons = Session.QueryOver<Person>()
.Where(person => ...)
.List();
foreach (var person in persons)
{
//Do something with groups
var groups = person.Groups;
//Do something with profiles
var groups = person.Profiles;
}
当我运行此操作时,我会执行类似2n + 1查询的操作 我已经看过Future,Fetch和其他选项,但似乎没什么好看的。
有没有办法在3-4次查询中执行此操作?