Сессия nHibernate - Использование шаблона хранилища в Web, Windows, WCF и т. д. - PullRequest
1 голос
/ 07 апреля 2010

Недавно я опубликовал вопрос, на который ответил Брайан Уоттс, относительно общего хранилища для nHibernate.

Я пытаюсь спроектировать свой доступ к данным, чтобы разрешить различные аспекты - из служб ASP.net, WCF и Windows Forms / Windows. Я немного сбит с толку re: управление сессиями и т.д ..

Как бы я справился с этим?

Я проверял код, такой как: http://membranecms.googlecode.com/svn/

и такие вопросы, как: Управление сессиями NHibernate Linq

Но что мне делать, если я не просто делаю вещи в веб-среде ..?

Нужно ли создавать разные репозитории для каждого клиента? Или я передаю ISession в (например) конструктор UserRepository ..?

... в качестве примечания я использую nHibernate.Linq Также использую свободный nHibernate для настройки моего отображения

1 Ответ

3 голосов
/ 07 апреля 2010

Мы используем внедрение зависимости конструктора в наш базовый класс Repository <....>.Конструктор репозитория ожидает экземпляр ISession, который предоставляется из контейнера IoC.

Контейнер IoC инициализируется при запуске в зависимости от того, какой пользовательский интерфейс используется.

Определенно нет необходимости в разных репозиторияхИнтерфейс пользовательского интерфейса.

...