Fetch vs FetchMany in NHibernate Linq provider
LinqNhibernateFetchEager LoadingLinq Problem Overview
NHibernate eager loading can be done using Fetch
and FetchMany
, as described in NHibernate Linq Eager Fetching on Mike Hadlow's blog.
What is the difference between these two methods and under what circumstance would each be used?
Linq Solutions
Solution 1 - Linq
Fetch
should be used for references and FetchMany
for collections.
This is particularly important because only FetchMany
can be combined with ThenFetchMany
to fetch "grandchildren" collections.
Example:
session.Query<User>()
.FetchMany(u => u.Orders)
.ThenFetchMany(o => o.OrderItems)