2012-05-29 4 views
1

У меня вопрос о работе с объектами, которые были получены от db. В настоящее время у меня много операций, где мне нужно получить объекты из db и передать их другой службе. Упрощенный вариант такого кода является, как это:Fluent Nhibernate, работающий с объектами после сеанса размещения

List<Entity> list; 
using(var session = SessionFactory.OpenSession()) 
{ 
    list = Session.QueryOver<Entity>.Future().ToList(); 
} 

Так что теперь я не знаю, если список объектов не расположен в течение длительного времени, будет ли он причина Лиры памяти accordint хранимых сеансов. Существуют ли сеансы nhibernate, когда существуют объекты, которые были получены во время сеанса?

Update:

Найдено некоторые сессии установки Session.ActiveEntityMode - ПОКО, делает это решает мою проблему?

ответ

2

сеанс удаляется, как только использование заканчивается. Все загруженные объекты остаются в силе, за исключением не инициализированных lazyloaded коллекций/ссылок/свойств.

Также будущее в Session.QueryOver<Entity>.Future().ToList(); является noop, когда нет других операций, для которых у них есть будущее/будущее.

+0

Спасибо, уже сделали некоторые тесты с высокой нагрузкой, чтобы доказать режим POCO на сеансе. –