Допустим, имеется объект, хранящий список других объектов. В базе эти связи реализованы как один-ко-многим или многие-ко-многим. В меппинге NHibernate указано, что коллекция загружается по требованию (lazy=true). Можно ли в конкретном методе получения сущностей из сессии управлять «ленивостью» загрузки? То есть, в некоторых случаях загружать с ленивой загрузкой, а в других получать весь граф объектов полностью?
Зачем это нужно: Объект класса A
хранит ссылку на коллекцию объектов типа B
. Когда в интерфейсе отображается список объектов A
для предпросмотра, нужно чтобы дочерняя коллекция B
не загружалась. Но, когда список объектов отображается в полном виде, нужно чтобы был загружен весь граф. Если просто для каждого объекта A
обратиться к лениво-загружаемой коллекции B
, то получим n+1 select. Как обойти эту проблему?