我什么时候应该使用session-per-request模式

时间:2009-03-31 19:14:15

标签: asp.net database design-patterns orm

我到处都看到这种模式,但Linq to SQL没有实现它。如果Session / Unit-of-Work对象是轻量级的(可以在没有性能损失的情况下创建和销毁),并且连接池使数据库连接保持活动状态,那么为什么以及何时需要每个请求的会话模式?

2 个答案:

答案 0 :(得分:3)

我认为每次请求会话的想法更多地是关于何时打开和关闭会话,而不是关于获得性能改进。

想法是

  1. 打开会话将在您的代码被调用之前启动一个事务
  2. 您的业务逻辑您的框架可以完全访问数据库,直到 last 可能的时刻
  3. 您的交易是为您承诺的,而不是每次都必须这样做
  4. #2的想法很重要,因此您可以混合Web框架和延迟加载数据;如果在执行代码后渲染数据时调用了getter方法,并且关闭了会话,则无法延迟加载该getter的结果。

答案 1 :(得分:0)

这实际上是一个很好的问题,几乎所有的教程似乎都避免了。

如果您不使用延迟加载,则不需要它。