nhibernate извлекает ленивую загруженную коллекцию после того, как я уже присвоил свойство

Я использую QueryOver и с нетерпением загружаю отфильтрованную коллекцию, похожую на следующую:

Part partAlias=null;
Session.QueryOver<Car>().JoinQueryOver(x=>x.Parts,()=>partAlias)
.WhereRestrictionOn(()=>partAlias.Id).IsIn(partIds)
.List<Car>();

Проблема в том, что когда я ссылаюсь на результирующую коллекцию (.Parts), она извлекается из базы данных и перезаписывает то, что у меня было раньше. Я использую Fluent Nhibernate для конфигурации.


person Alex    schedule 02.05.2012    source источник


Ответы (1)


Хорошо, в итоге у меня все заработало. Было несколько разных проблем. Одним из них было включение других отношений, которые создавали декартово произведение, которое приводило к умножению коллекций. Еще одну проблему, которая более специфична для моего вопроса здесь, я решил, добавив тип соединения как JoinType.LeftOuterJoin. Я нашел совет в этой теме. По умолчанию используется внутреннее соединение, и это просто не работает. Соединение ДОЛЖНО быть левым внешним соединением.

person Alex    schedule 03.05.2012