У меня довольно глубокий объектный граф (5-6 узлов), и когда я пересекаю его части, NHProf говорит мне, что у меня проблема "Выбрать N + 1" (что я и делаю).
Два известных мне решения:
- рвение детей
- Разбейте мой граф объектов (и энергичный груз)
Я действительно не хочу делать ни один из этих (хотя я могу разбить график позже, поскольку я предвижу его рост)
На данный момент ....
Можно ли сказать NHibernate (с FluentNHibernate), что всякий раз, когда я пытаюсь получить доступ к дочерним элементам, загружать их все за один раз, а не select-n + 1-ing, когда я их перебираю?
Я также получаю «неограниченный набор результатов», что, вероятно, является той же проблемой (или, скорее, будет решено с помощью вышеуказанного решения, если это возможно).
В каждой дочерней коллекции (по всему графику) будет всего около 20 членов, но 20 ^ 5 - это много, поэтому я не хочу загружать все, когда получаю рут, а просто получить все дочерние Коллекция, когда я подхожу к ней.
Редактировать: запоздалая мысль .... что если я хочу ввести пейджинг, когда я хочу отобразить детей? Должен ли я разбить свой граф объектов здесь, или есть какая-то хитрость, которую я могу использовать, чтобы решить все эти проблемы?