NHibernate: готовый перезагружать временный объект глубоко вложенные дочерние свойства - PullRequest
0 голосов
/ 10 сентября 2009

Я хочу сохранить сущность, настроенную пользователем на нескольких страницах, в сеансе. Этот объект загружается с помощью NHibernate, а некоторые его свойства / коллекции загружаются отложенным образом. Скажи:

  • Session ["order"] = новый заказ (productRepository.Get (id))
  • на следующей странице получите сессию ["order"] и теперь работайте с ней

но в настоящее время порядок в порядке, но его Продукт (и вложенные элементы) поврежден, так как они загружаются в другой сеанс.

Можно ли сказать NHibernate, что я хочу загружать свойства моего переходного ордера до самого глубокого уровня? Или, единственное решение будет стремиться загрузить во время productRepository.Get (ID) ? Подобно, Session.LoadNestedProperties (order, Eager);

Обновление: http://www.ribbing.net/index.php?option=com_content&task=view&id=35&Itemid=1, кажется, решил проблему. Однако я не уверен, что отражение - это здорово ...

1 Ответ

0 голосов
/ 19 января 2011

Вы можете загрузить весь график нужными объектами, что немного сложно.

Или вы можете попробовать следующее:

Я предполагаю, что в вашем Заказе есть один продукт. Этот продукт является вашей проблемой, так как он становится отдельным объектом, когда пользователь заходит на вторую страницу. Вы можете использовать что-то вроде:

session.Update(myorder.Product)

для повторного присоединения экземпляра Product к текущему сеансу. После этого ленивая загрузка должна работать нормально.

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