我刚刚开始使用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工厂?
在MVC Web项目的Global.asax.cs中做什么?
我不知道的每项好处有哪些?