【问题标题】:when should I use the session-per-request pattern我什么时候应该使用 session-per-request 模式
【发布时间】:2009-03-31 19:14:15
【问题描述】:

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

【问题讨论】:

    标签: asp.net database design-patterns orm


    【解决方案1】:

    我相信每个请求会话的想法更多的是关于您何时打开和关闭会话,而不是提高性能。

    这个想法是

    1. 打开会话将在您的代码被调用之前启动事务
    2. 您的业务逻辑您的框架可以完全访问数据库,直到最后可能的时刻
    3. 您的事务已为您提交,而不必每次都自己进行

    #2 的想法很重要,这样您就可以混合使用 Web 框架和延迟加载数据;如果在执行代码后渲染数据时调用了 getter 方法,并且您关闭了会话,则无法延迟加载该 getter 的结果。

    【讨论】:

      【解决方案2】:

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

      如果你不使用延迟加载,你就不需要它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-19
        • 2021-09-07
        • 2011-08-01
        • 2012-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多