将Mvc 2与ninject 2和NHibernate一起使用 - 获取SessionFactory

时间:2010-10-31 18:36:44

标签: asp.net-mvc nhibernate ninject

我正在尝试将Mvc2与Ninject和NHibernate结合起来,并在此处找到了一个指南: http://damianm.com/tech/nhibernate-mvc-and-ninject/

问题在于他使用Ninject 1.所以我必须转换它,我几乎成功了,但我仍有一个问题:

我不知道如何在这里转换“context.Kernel.Get”:

protected override ISession CreateInstance(IContext context)
{
   var sessionFactory = context.Kernel.Get<ISessionFactory>();
   return sessionFactory.OpenSession();
}

如果您有更好的方法来整合这三个库,请告诉我。

1 个答案:

答案 0 :(得分:2)

我在我的项目中做的基本相同,但是我没有使用ISession的提供程序。这是我的约束力:

        Bind<ISessionFactory>()
            .ToProvider<SessionFactoryBuilder>()
            .InSingletonScope();

        Bind<ISession>()
            .ToMethod( context => context.Kernel.Get<ISessionFactory>().OpenSession() )
            .InRequestScope();