Я использую Ninject, NHibernate, ASP.NET MVC3 и шаблон репозитория.Привязка модуля в Ninject выглядит следующим образом.
Bind<ISessionFactory>().ToProvider(new SessionFactoryProvider()).InSingletonScope();
Bind<ISession>().ToMethod(context => context.Kernel.Get<ISessionFactory>().OpenSession()).InRequestScope();
Вопрос в том, должен ли репозиторий принимать ISession или ISessionFactory.Если требуется ISessionFactory, то в репозитории я могу открыть сеанс, когда это необходимо, и закрыть его после использования.Если требуется ISession, хранилище использует его напрямую.Но мне интересно, закрыта ли сессия должным образом.