Да ... просто установите правильный режим выборки.
Я приведу пример через минуту.
Пример взят отсюда =>
IList cats = sess.CreateCriteria(typeof(Cat))
.Add( Expression.Like("Name", "Fritz%") )
.SetFetchMode("Mate", FetchMode.Eager)
.SetFetchMode("Kittens", FetchMode.Eager)
.List();
Вы также можете указать, загружать ли ребенка потомком =>
.SetFetchMode("Kittens.BornOn", FetchMode.Eager)
Если вы используете Linq для NHibernate, используйте метод Expand =>
var feedItemQuery = from ad in session.Linq<FeedItem>().Expand("Ads")
where ad.Id == Id
select ad;
И я бы порекомендовал использовать вспомогательный метод, который создает строку из переданного в лямбда-выражении.
Вполне вероятно, что можно сказать Criteria загрузить целое дерево. Но я не знаю об этом, и я предпочитаю указывать, что именно мне нужно (кажется опасным загружать все).
Помогает ли это ?