Если вы используете Критерии, вы можете добавить псевдоним к критериям, чтобы предварительно выбрать объединения для вашего запроса.
Это будет выглядеть примерно так:
DetachedCriteria.For(GetType(MyQueriedType)).CreateAlias("DerivedItem", "d", SqlCommand.JoinType.LeftOuterJoin)
Очевидно, вы можетезатем перейдите к получению дополнительной информации из других таблиц, повторив процесс.Не забудьте сопоставить следующий псевдоним любому потенциальному псевдониму.
На самом деле, если вы не хотите прекращать использовать linq для nhibernate, я бы порекомендовал поискать соединения для linqв спящий режим.Возможно этот пост может помочь