【发布时间】:2014-02-19 00:08:22
【问题描述】:
在 Web 应用程序中使用 FluentNHibernate,我创建了一个单例 SessionFactory 类以具有以下能力:
SessionFactory.Instance //returns ISessionFactory
如下打开/关闭会话是否常见/最佳做法?
using(ISession session = SessionFactory.Instance.OpenSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
//some operation
}
}
上述代码将存在于给定实体的相应存储库类中。
我注意到有一个主题是创建一个 HttpModule 以在应用程序的启动和停止时打开会话,但我想知道这是情景还是更常见。
更新
对于 HttpModule,我也有类似的想法:
使用存储库类,我基本上是在执行以下操作(配置使用 WebSessionContext):
using(ISession session = SessionFactory.Instance.GetCurrentSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
//some operation
}
}
【问题讨论】:
标签: c# nhibernate session