【发布时间】:2009-03-31 19:14:15
【问题描述】:
我到处都能看到这种模式,但 Linq to SQL 并没有实现它。如果 Session/Unit-of-Work 对象是轻量级的(可以在没有性能损失的情况下创建和销毁),并且连接池使数据库连接保持活动状态,那么为什么以及何时需要 session-per-request 模式?
【问题讨论】:
标签: asp.net database design-patterns orm
我到处都能看到这种模式,但 Linq to SQL 并没有实现它。如果 Session/Unit-of-Work 对象是轻量级的(可以在没有性能损失的情况下创建和销毁),并且连接池使数据库连接保持活动状态,那么为什么以及何时需要 session-per-request 模式?
【问题讨论】:
标签: asp.net database design-patterns orm
我相信每个请求会话的想法更多的是关于您何时打开和关闭会话,而不是提高性能。
这个想法是
#2 的想法很重要,这样您就可以混合使用 Web 框架和延迟加载数据;如果在执行代码后渲染数据时调用了 getter 方法,并且您关闭了会话,则无法延迟加载该 getter 的结果。
【讨论】:
这实际上是一个几乎所有教程似乎都避免的好问题。
如果你不使用延迟加载,你就不需要它。
【讨论】: