2010-08-17 4 views
0

Мое приложение состоит из двух видов, списка и деталей.NHibernate уведомляет другие сессии об изменениях

Каждый экземпляр представления имеет свою собственную сессию NHibernate.

Когда пользователь сохраняет объект из подробного представления, после этого в представлении списка (идентификатор объекта) публикуется событие, представление списка повторно выбирает измененный объект с использованием собственного сеанса.

Для того, чтобы сессии представления списка, чтобы получить свежую версию измененного лица я называю Session.Clear() методом, и он работает нормально, но потом я начинаю получать:

Initializing[Core.Domain.Order#0001730]-failed to lazily initialize a collection of role: Core.Domain.Cable.OrderItems, no session or session was closed 

Что бы правильный способ " синхронизировать "сеансы и избегать ленивых ограничений загрузки?

Thank You

ответ

1
Session.Refresh(object); 

вы можете позвонить

Session.Evict(object); 

затем

Session.Refresh(object); 

в некоторых многих однозначных ситуациях.

0

Не используйте длительные сеансы. Они не предназначены для синхронизации (поэтому вы используете базу данных?). Session.Clear() следует использовать только в исключительных обстоятельствах.

Смежные вопросы