NHibernate: Как получить объект без дочерних коллекций? - PullRequest
1 голос
/ 13 января 2010

Мои объекты типа Object1 содержат свойство List Children1. Я хотел бы получить эти объекты без детей.

Похоже на detachedCriteria.SetFetchMode ("Children1", FetchMode.Lazy) должно быть, но, видимо, это не так :( Я попытался получить данные с помощью (new SessionScope ()) и установить значение null в .Children1, но это не удалось (данные уже были извлечены).

Любые идеи будут оценены.

Ответы [ 4 ]

0 голосов
/ 22 февраля 2010

Мне кажется, что вы используете однозначное сопоставление. В этом случае ленивая загрузка не сработает. Если это так, пожалуйста, проверьте эту статью . В противном случае, пожалуйста, предоставьте немного больше кода и отображений.

0 голосов
/ 13 января 2010

У нас была та же проблема в нашем текущем решении, и настройка Lazy в отображении не работала. Нам пришлось установить default-lazy в true, и вдруг это сработало.

Это будет работать лучше всего, если все отношения будут по умолчанию ленивыми.

0 голосов
/ 22 февраля 2010

При использовании API-интерфейса ICriteria для извлечения ваших сущностей вы можете указать (переопределить) режим выборки, который должен использоваться для ассоциаций:

ICriteria crit = session.CreateCriteria (typeof(MyEntity));
crit.SetFetchMode ("someAssociationPath", FetchMode.Lazy);
0 голосов
/ 13 января 2010

Когда вы отображаете коллекцию, вы указываете не использовать отложенную загрузку?Попробуйте указать отложенную загрузку на этом этапе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...