ОБНОВЛЕНИЕ 2:
https://www.nuget.org/packages/NHibernate.Linq.InnerJoinFetch
Наслаждайтесь !!!
UPDATE:
Мне, наконец, удалось это сделать, и я отправил запрос на повторное получение команды NH
https://github.com/nhibernate/nhibernate-core/pull/210
На самом деле это возможно, но вам нужно взломать NHibernate, строка для изменения - вот эта
tree.AddFromClause(tree.TreeBuilder.LeftFetchJoin(join, tree.TreeBuilder.Alias(alias)));
в
tree.AddFromClause(tree.TreeBuilder.FetchJoin(join, tree.TreeBuilder.Alias(alias)));
в файле ProcessFetch.cs
Кажется, что поведение жестко закодировано для Linq, и я думаю, что это потому, что он использует методы расширения для отправки того, что использовать для обработки DefaultQueryProvider и re-linq, мне все еще нужно выяснить, как указать тип объединения вы хотите делать выборку с помощью linq api, но я работаю над этим, надеюсь, я отправлю запрос на извлечение команды NH, чтобы они могли поместить это в кодовую базу, а сейчас в моем проекте я буду использовать свой Кастомная версия NH