2010-12-09 4 views
67

Загрузка NHibernate может быть выполнена с использованием Fetch и FetchMany, как описано в NHibernate Linq Eager Fetching на блоге Майка Хэдлоу.Fetch vs FetchMany в поставщике услуг NHibernate Linq

В чем разница между этими двумя методами и при каких обстоятельствах каждый будет использоваться?

ответ

95

Fetch следует использовать для ссылок и FetchMany для коллекций.

Это особенно важно, потому что только FetchMany можно комбинировать с ThenFetchMany, чтобы получить коллекции «внуков».

Пример:

session.Query<User>() 
     .FetchMany(u => u.Orders) 
     .ThenFetchMany(o => o.OrderItems) 
+5

Есть ли проблема с помощью Fetch() на собраниях, если вы не планируете вызова ThenFetch() после этого? – henriksen 2011-02-02 12:59:20

Смежные вопросы