как установить сессию для консольного приложения? - PullRequest
2 голосов
/ 22 декабря 2009

У меня есть библиотека c # для моего веб-приложения, где я использую nhibernate. В веб-приложении есть файл hibernate.cfg.xml, в котором я установил:

current_session_context_class = web

Я использую класс nhibernateHelper и модуль http для открытия и закрытия сеанса для каждого запроса.

Теперь мне нужно использовать эту библиотеку в консольном приложении. Как установить значение current_session_context_class сейчас?

Ответы [ 2 ]

4 голосов
/ 22 декабря 2009

Существует опция «нить», которую вы можете использовать. Это свяжет текущий сеанс с потоком.

Подробнее об управлении сессиями в настольных приложениях: Какова ваша стратегия управления сессиями для NHibernate в настольных приложениях?

Статья Ayendes MSDN о NHibernate и настольных приложениях: http://msdn.microsoft.com/en-us/magazine/ee819139.aspx

1 голос
/ 22 декабря 2009

Я использовал nHibernate как для веб-приложений, так и для консольных приложений, но никогда не использовал этот конкретный параметр конфигурации.

Я сделал несколько поисковиков в Google и нашел это:
Контекстные сеансы

Выдержки:

Готово, NHibernate 2.0.0 поставляется с несколькими реализациями этого Интерфейс:

  • NHibernate.Context.ManagedWebSessionContext текущие сессии отслеживаются HttpContext. Тем не менее, вы ответственность связывать и снимать Экземпляр ISession со статическими методами в этом классе он никогда не открывается, сбрасывает или закрывает сам сеанс IS.

  • NHibernate.Context.CallSessionContext Текущие сессии отслеживаются CallContext. Вы несете ответственность за связать и открепить экземпляр ISession со статическими методами класса CurrentSessionContext.

  • NHibernate.Context.ThreadStaticSessionContext -current сеанс хранится в потоковой статической переменной. Этот контекст поддерживает только одну фабрику сессий. Вы несут ответственность за связывание и снятие Экземпляр ISession со статическими методами класса CurrentSessionContext.

  • NHibernate.Context.WebSessionContext - аналог ManagedWebSessionContext выше, хранит текущий сеанс в HttpContext. Вы несете ответственность за связывание и отстранение экземпляр ISession со статическим методы класса CurrentSessionContext.
    .....
    ... однако, есть соответствующие короткие имена: "managed_web", "call", "thread_static" и "web" , соответственно.

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