MVC FluentNhibernate在哪里创建ISessionFactory

时间:2013-04-21 11:53:30

标签: asp.net-mvc-3 fluent-nhibernate

我刚刚开始使用ASP.NET MVC 3学习FluentNhibernate,所以请原谅我这个问题听起来很愚蠢还是我不够清楚。

我的解决方案包含两个项目:Web界面和业务层。下面是我初始化NHibernate会话工厂的代码块:

public static ISessionFactory SessionFactory { get; private set; }

public static ISessionFactory SessionFactory
{
    get
    {
        if (_sessionFactory == null) InitializeSessionFactory();
        return _sessionFactory;
    }
}

public static void InitializeSessionFactory()
{
    SessionFactory = Fluently.Configure()
    .Database(MsSqlConfiguration.MsSql2008
    .ConnectionString(m => m.FromConnectionStringWithKey("connString")).ShowSql())
    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<MySampleObjectMap>())
    .ExposeConfiguration(c => c.SetProperty("current_session_context_class", "web"))
    .BuildSessionFactory();
}

public static ISession OpenSession()
{
    return SessionFactory.OpenSession();
}

所以,我的问题是我在哪里实例化和初始化NHibernate Session工厂?

  1. 在“业务”图层上,以便将持久层分开,或者
  2. 在MVC Web项目的Global.asax.cs中做什么?

    我不知道的每项好处有哪些?

0 个答案:

没有答案