2016-07-12 1 views
0

CurrentSessionContext.Bind(sessionFactory.OpenSession());の目的はnhibernateで何ですか。Nhibernate CurrentContextとは何ですか

public void Application_Start() 
{ 

    BeginRequest += delegate 
{ 

     CurrentSessionContext.Bind(sessionFactory.OpenSession());  

    }; 
} 

答えて

0

contextual sessionです。一般的なWebプロジェクトで

(それはあまりにもonther plataformsで行うことができ)、BeginRequestEndRequestイベントの間、リクエストコンテキストに定義されたISessionを持つcommom praticeあります。したがって、セッションのバインドを定義すると、データアクセスレイヤーのSessionFactory.GetCurrentSession()メソッドからアクセスできます。これは、データベースとのすべての接続を管理せず、上位層(UI)で管理したままにします。

+0

答えていただきありがとうございます。データアクセスレイヤーからglobal.asaxで定義されたsessionfactoryにどうやってアクセスできますか?私は別のクラスライブラリ(サービスprject)からglobal.asaxにアクセスしたい – Raghu

+0

私は私の奉仕プロジェクトでこれを好きです。パブリッククラスMyService:IMyService { public void doStuff() { ISession session = Global.SessionFactory.GetCurrentSession(); } } – Raghu

+0

リクエストごとのセッションと呼ばれる実装を探します。http://benfoster.io/blog/yet-another-session-per-request-post –

関連する問題