请参阅以下代码:
public Person GetById(Guid id)
{
return Session.Get<Person>(id);
}
如何返回急切加载Person.Sports集合的Person?
我尝试过使用QueryOver和Fetch。
答案 0 :(得分:0)
您可以在映射中指定不应该延迟加载集合,但是,对于要加载Person的每个查询,都将检索该集合。
我确信你可以用QueryOver做到这一点,但我还没有用过它。 您还可以在使用ICriteria方法时指定获取模式:
var crit = session.CreateCriteria<Person>();
crit.SetFetchMode("Sports", FetchMode.Eager);
crit.Add(Restrictions.Eq("PersonId", id);
由于我也想知道如何使用QueryOver,我一直在谷歌搜索,我遇到了this。 您是否尝试过这样的实体:
var query = session.QueryOver<Person>()
.Fetch( p => p.Sports).Eager
.Left.JoinAlias( p => p.Sports, () => s)
...