我能同时拥有ISession和IStatelessSession吗?

时间:2010-06-24 10:56:56

标签: c# nhibernate transactions stateless

考虑每个视图交易模型,其中IHttpModule我使用标准ISession打开交易。

现在,我有一个页面,我想做一些批处理操作。由于IStatelessSession是批处理操作的首选:

  1. 我可以同时打开ISessionIStatelessSession吗?这样安全吗?
  2. 如果1.是的,我可以使用相同的ITransaction吗?
  3. 如果2.我不应该承诺&关闭ISession及其关联的ITransaction,然后为其打开IStatelessSession和新的ITransaction
  4. 如果3.是的,我应该注意哪些陷阱?
  5. 欢迎任何想法

1 个答案:

答案 0 :(得分:2)

  1. 是和是。
  2. 不,每个人都有自己的交易。
  3. 我会提交ISession的交易,但让ISession保持开放状态。
  4. 我建议不要为每个HTTP请求启动事务。而是在您提交更改时在页面上启动并提交事务。这也改进了异常处理,因为您可以在页面上而不是在请求结束时捕获异常。