我可以同时拥有 ISession 和 IStatelessSession 吗?

发布于 2024-09-07 05:08:35 字数 505 浏览 4 评论 0原文

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

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

  1. 我可以同时打开 ISessionIStatelessSession 吗?安全吗?
  2. 如果 1. 可以,我可以使用相同的 ITransaction 吗?
  3. 如果 2. 不,我应该提交 &关闭 ISession 及其关联的 ITransaction,然后打开 IStatelessSession 及其新的 ITransaction
  4. 如果 3. 是的,我应该注意什么陷阱吗?

欢迎任何想法

Consider a transaction-per-view model where with an IHttpModule i open a transaction using a standard ISession.

Now, i have a page where i want to do some batch operations. Since IStatelessSession is preferred for batch operations:

  1. Can i have both ISession and IStatelessSession open at the same time? Is it safe?
  2. If 1. yes can i use the same ITransaction?
  3. If 2. no should i Commit & Close the ISession and its associated ITransaction and then open the IStatelessSession and a new ITransaction for it?
  4. If 3. yes are there any pitfalls i should be aware of?

any ideas are welcome

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

做个少女永远怀春 2024-09-14 05:08:35
  1. 是的,是的。
  2. 不,每个人都有自己的交易。
  3. 我将提交 ISession 的事务,但保持 ISession 打开。

我建议不要为每个 HTTP 请求启动事务。当您需要提交更改时,请在页面上启动并提交事务。这也改进了异常处理,因为您可以在页面上而不是在请求结束时捕获异常。

  1. Yes and yes.
  2. No, each will have its own transaction.
  3. I would commit the ISession's transaction but leave the ISession open.

I recommend not starting a transaction for every HTTP request. Instead start and commit a transaction on the page when you have changes to commit. This also improves exception handling because you can catch the exception on the page instead of at the end of the request.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文