在桌面应用程序中使用ActiveRecord SessionScope的正确方法是什么?

时间:2011-11-16 08:45:48

标签: nhibernate desktop-application windows-authentication castle-activerecord session-scope

在使用Castle ActiveRecord的桌面应用程序中

我打开一个SessionScope并在应用程序生命周期内保持活着,我在应用程序结束时将其处理掉。

当我需要执行“某些操作”时,我会这样做,如果我需要事务操作,我会根据需要创建一个嵌套事务的TransactionsScope,在事务正确结束后,我会刷新会话并继续保持活动状态SessionScope。

这种方法是否正确?或者我需要在bl进程开始时打开SessionScope并在结束时关闭它?如果是的话,为什么?。

我使用LazyLoad并且进程可以根据需要调用另一个进程,同时单个进程可以单独运行。

-update- 有正确的方法是在表单层打开一个会话镜,但由于ar会话镜是以堆叠方式创建的,我在同一级别上不能有超过1个会话镜,我只有一个会话镜到另一个,有人知道怎么做解决这个问题?

1 个答案:

答案 0 :(得分:0)

解决: 实现管理堆栈集合的IThreadScopeInfo。 我开始认为castle ar已被弃用。

谢谢。