开发者

Session Management in Castle Active Record

开发者 https://www.devze.com 2022-12-19 18:41 出处:网络
How do I manage session if I am using Castle Active Record over nHibernate. Basically I can manage the life cycle of ISession on my own if I am using nHibernate directly. But when I am using Castle AR

How do I manage session if I am using Castle Active Record over nHibernate. Basically I can manage the life cycle of ISession on my own if I am using nHibernate directly. But when I am using Castle AR it does not give me a way to manage开发者_JAVA百科 the life cycle of the session. I want to use single Session per thread.


I am using Castle AR in a WCF service and would like to use Session per WCF Request.


Instead of using ISession, in Castle ActiveRecord you want SessionScope:

using(new SessionScope())
{
  ; // do work here
}

If you need access to the ISession inside the SessionScope for some reason, you can do this:

ISession dbSession = Castle.ActiveRecord.ActiveRecordMediator
      .GetSessionFactoryHolder().CreateSession(
          typeof(Castle.ActiveRecord.ActiveRecordBase));

More documentation is here:

http://www.castleproject.org/activerecord/documentation/trunk/usersguide/scopes.html#sess_scope

and here:

http://www.castleproject.org/activerecord/documentation/trunk/manual/scopes.html


I assume you are working in a web app. Is that not the case?

There are a couple of ways to do it - Castle AR documentation

The simplest way is to the use SessionScopeWebModule to give a session per request.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号