0
請參閱下面的代碼:急切地加載集合
public Person GetById(Guid id)
{
return Session.Get<Person>(id);
}
我怎樣才能返回具有Person.Sports收集即時加載一個人?
我試過使用QueryOver和Fetch。
請參閱下面的代碼:急切地加載集合
public Person GetById(Guid id)
{
return Session.Get<Person>(id);
}
我怎樣才能返回具有Person.Sports收集即時加載一個人?
我試過使用QueryOver和Fetch。
您可以在映射中指定集合不應該被延遲加載,但是,那麼將爲每個要加載Person的查詢檢索該集合。
我相信你可以用QueryOver做到這一點,但我還沒有用過。 使用的ICriteria方法時,您還可以指定抓取模式:
var crit = session.CreateCriteria<Person>();
crit.SetFetchMode("Sports", FetchMode.Eager);
crit.Add(Restrictions.Eq("PersonId", id);
因爲我想知道如何使用QueryOver還有,我一直在google搜索了一下,以做到這一點,我遇到this來了。 您是否試圖獲取這樣的實體:
var query = session.QueryOver<Person>()
.Fetch(p => p.Sports).Eager
.Left.JoinAlias(p => p.Sports,() => s)
...