У меня есть таблица / сущность Team с parentId, который является идентификатором, который сам присоединился к той же таблице.
Существует свойство TopUnit, которое рекурсивно будет продолжать вызывать .Parent, пока не найдет атрибут в сущности Team с именем "IsTopUnit"
с помощью профилировщика nhibernate теперь это вызывает предупреждение Select N + 1. в любом случае можно оптимизировать то, что по сути является рекурсивным запросом на самообъединение, чтобы избежать поведения Select N + 1.
batchsize, кажется, работает для дочерних коллекций, но, похоже, в этом случае не помогает, так как все это "синхронно", так как я не могу выполнить рекурсивный SQL-оператор.
Полагаю, этот вопрос действителен и вне nhibernate. Каков наилучший способ сделать рекурсивные операторы в SQL. похоже, вам придется разбить его на несколько запросов.