2008-11-17 3 views
6

Я новичок в отношении WCF и NHibernate. Однако мне нужно сделать небольшой проект, включающий несколько сервисов (сделанных с помощью WCF) и постоянный уровень (сделанный с помощью NHibernate).WCF + NHibernate + ISession =?

Моя проблема касается использования ISession и ISessionFactory. Я прочитал (и увидел), что создание ISessionFactory очень тяжелое (и потокобезопасное). Итак, я думаю, что я мог бы создать экземпляр этого класса только один раз во время выполнения приложения. Я прав?

Моя проблема касается большего класса ISession. Я точно не знаю, с какой гранулярностью я должен ее использовать. Я думаю, что я должен использовать/создавать один экземпляр для каждого вызова службы (я использую «услуги для каждого вызова»). Опять же, я прав?

+0

Это мое сообщение, описывающее это http://stackoverflow.com/a/15451070/168048 – szkra 2013-03-16 15:47:15

ответ

5

Вы находитесь на месте. Заседание фабрики дорого строится и хорошо подходит как синглтон, в то время как сеанс является более легким контекстуальным объектом, обертывающим «единицу работы».

Чтобы узнать больше, вы можете прочитать о замке WCF, предлагающем решение этой проблемы. Вот blog post, который исследует его.

Смежные вопросы