Почему nhibernate не поставляется с соответствующим менеджером сессий, таким как UoW? - PullRequest
2 голосов
/ 17 июля 2009

Как новичок в nHibernate, создание сессий несколько сбивает с толку.

Почему nHibernate не поставляется с чем-то вроде того, что (я считаю) Unit Of Work делает?

или там что-то построено и UofW - это скорее аддон / предпочтение? (контекст: веб-приложение ASP.NET MVC с сервером SQL).

Примечание. Я новичок в nHibernate и не могу понять, как работает MS. Я был бы рад, если бы вещи, которые, как правило, должны быть отправлены вместе с продуктом, загружались и т. Д.

Ответы [ 3 ]

4 голосов
/ 17 июля 2009

Сессия - это некая единица работы, а также карта личности. Вы можете создать свою собственную единицу работы над ней. Разным приложениям нужны разные виды единиц работы, а также разные программисты, например, разные реализации.

Вам не понадобится более 50 строк кода для создания собственной реализации единицы работы для абстрактного управления сеансами и транзакциями.

2 голосов
/ 22 июля 2009

Если вы его еще не нашли ... для веб-приложений есть компонент Unit of Work, являющийся частью проекта NHibernate Contrib, который называется NHibernate Burrow . Он достаточно гибкий и поддерживает короткие (сеанс на запрос) и длинные (сеансы, охватывающие более одного запроса) разговоры.

В прошлом я использовал Burrow с ASP.NET MVC, и он прекрасно работает, хотя я не пробовал долго разговаривать в MVC. В его текущем состоянии, чтобы использовать его, вам необходимо обновить ссылки на библиотеки и скомпилировать проект Burrow. Это немного дополнительная работа, но она того стоит.

0 голосов
/ 18 июля 2009

Я согласен с Пако, хотя в веб-приложении это может быть немного больше работы.

Я думаю, что реальная проблема заключается в том, что большинство из нас хотят изолировать наш исходный код от прямой зависимости от NHibernate, и поэтому мы не хотим работать напрямую с сеансом.

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

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