如果我在nHibernate上使用Castle Active Record,如何管理会话。基本上,如果我直接使用nHibernate,我可以自己管理ISession的生命周期。但是当我使用Castle AR时,它并没有给我一种方法来管理会话的生命周期。我想在每个线程中使用单个Session。
我在WCF服务中使用Castle AR,并希望使用每个WCF请求的会话。
答案 0 :(得分:2)
在Castle ActiveRecord中,您需要SessionScope:
,而不是使用ISessionusing(new SessionScope())
{
; // do work here
}
如果由于某种原因需要访问SessionScope中的ISession,可以这样做:
ISession dbSession = Castle.ActiveRecord.ActiveRecordMediator
.GetSessionFactoryHolder().CreateSession(
typeof(Castle.ActiveRecord.ActiveRecordBase));
此处有更多文档:
http://www.castleproject.org/activerecord/documentation/trunk/usersguide/scopes.html#sess_scope
在这里:
http://www.castleproject.org/activerecord/documentation/trunk/manual/scopes.html
答案 1 :(得分:0)