score:3

Accepted answer

Doesn't matter. IQueryable is just a query statement and Fetch(), FetchMany() is just a setting on the Nhibernate query which enlarge the query to return more data so that you don't perform lazy loading later on. The query is not sent to the database until you call ToList(), Single() etc. The linq query is then transformed into a sql query which will contain more joins and columns and THEN it is sent to the database server.

The following query will do a "similar" join when fetching the entity + children but here I map it into a anonymous object:

_session
    .Query<Entity>()
    .Where(x => x.IsSomething)
    .Select(x => new { MyEntity = x, MyEntitiesChildren = x.Children });

Related Articles