Зачем использовать ISessionManager из CastleWindsor NHibernate? - PullRequest
2 голосов
/ 19 октября 2011

Я новичок как в NHibernate, так и в Castle Windsor, но текущее приложение, над которым я работаю, использует 2-й уровень интеграции с Castle Windsor в средстве интеграции NHibernate, то есть с помощью ISessionManager.

Я сравнил то, что мне нужно сделать, чтобы вручную сохранить свои данные, и с помощью ISessionManager я на самом деле не пишу меньше кода. Мой вопрос: зачем мне нужен ISessionManager? Какие преимущества это предлагает мне? Каковы недостатки использования ISessionManager?

1 Ответ

1 голос
/ 20 ноября 2011

Ну, во-первых, вам не нужно самостоятельно управлять сессиями.В веб-среде вы обычно хотите охватить свой сеанс pr-запроса.Менеджер сеансов гарантирует, что первый вызывающий «OpenSession» начинает новый сеанс, в то время как вложенные вызовы получают тот же сеанс при вызове «OpenSession».Вы можете сделать то же самое самостоятельно, запустив / закрыв сеансы в модуле http или используя шаблон AOP, обратите внимание, что выполнение этого подразумевает, что вы работаете с одной базой данных, а обработка нескольких баз данных самостоятельно становится немного более утомительной.ISessionManager обрабатывает несколько баз данных так же аккуратно, как и одну.

+ Обработка сессий для вас Легкая, не навязчивая поддержка Simple Easy для работы с несколькими базами данных Независимость от хостинга (работает так же хорошо с nservicebushosting, как и с IIS)

- немного больше стандартного кодав вашем DAL / Репозитории / как вы это называете

...