Fetch vs FetchMany в поставщике NHibernate Linq

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

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

Ответ 1

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

Это особенно важно, потому что только FetchMany можно объединить с ThenFetchMany для извлечения коллекций "внуков".

Пример:

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