在Web應用程序中使用FluentNHibernate,我創建了一個單身的SessionFactory類具有以下能力:打開/關閉NHibernate的會議
SessionFactory.Instance //returns ISessionFactory
是否打開/關閉會話作爲普通/最佳實踐如下?
using(ISession session = SessionFactory.Instance.OpenSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
//some operation
}
}
上述代碼將存在於給定實體的相應存儲庫類中。
我注意到有一個主題是創建一個HttpModule在應用程序的啓動和停止時打開會話,但我想知道這是情景還是更常見。
UPDATE
今後與HTTP模塊,我也有類似的想法:
隨着庫類,我基本上做以下(配置使用WebSessionContext):
using(ISession session = SessionFactory.Instance.GetCurrentSession())
{
using(ITransaction transaction = session.BeginTransaction())
{
//some operation
}
}
權上的會話。由於缺乏對WebSessionContext的知識,我最初感到沮喪,但HttpModule(begin/end)功能似乎工作正常。 – 2009-09-16 20:09:04