Недавно я интегрировал NHibernate в наше серверное приложение, которое предоставляет несколько сервисов.Базовая служба управляет несколькими экземплярами класса, и я понял, что рекомендуется использовать шаблон сеанса для запроса.Пока все хорошо.
Одной из других служб является служба настроек сайта, которая эффективно управляет единичным узлом: существует только один экземпляр SiteSettings.Я могу также следовать шаблону сеанса для запроса с этим сервисом, но это кажется странным.Мне действительно нужно создавать новый сеанс для каждого запроса здесь?Почему бы не создать единый сеанс для сервиса и продолжать его использовать?Одним из преимуществ шаблона сеанса на запрос является то, что сеанс в конечном итоге не кэширует все объекты в модели.Однако, поскольку я буду загружать только один экземпляр в сеансе, я думаю, это не должно вызывать беспокойства.Будет ли мне лучше использовать IStatelessSession, а не ISession?
Есть ли здесь другие причины использовать сеанс для запроса?Одна проблема, которая приходит на ум, - это то, что происходит в случае отключения от БД.Могу ли я продолжать использовать один и тот же сеанс даже после ошибки БД?
Кроме того, я думал о сохранении каждого параметра в отдельном столбце, что означает, что я должен обновлять схему при изменении параметров.Я нашел этот пост: Веб-приложение NHibernate - Управление пользовательскими настройками , где один из комментариев против использования таблицы для хранения таких параметров конфигурации.Мне трудно придумать альтернативы (если не считать сериализации всего класса и хранения его как капли).Есть ли разные подходы?