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