Dar*_*n V 5 c# entity-framework
我的服务器上有一些长时间运行的任务。基本上它们就像计划任务 - 它们不时运行。
他们都需要访问数据库,我为此使用实体框架。每个任务都使用一个 DbContext 进行访问。
应该在每次运行时重新创建 DbContext 对象还是应该重用它?
我应该说“这取决于”,因为可能存在两种答案都有效的情况,但最合理的答案是“上下文应该在不需要时立即处理”,这在实践中意味着“宜早不宜迟”。
来自这样的答案的风险是,新人有时会得出结论,应该尽可能地处理上下文,这有时会导致我审查的代码,其中有连续的“使用”创建上下文,将其用于一两个操作, dispose 然后下一行出现另一个上下文。这当然也不推荐。
对于 Web 应用程序,自然生命周期与 Web 请求的生命周期相关联。在系统服务/其他长时间运行的应用程序的情况下,生命周期策略之一是“每个业务流程实例”/“每个用例实例”,其中业务处理/用例实现定义了自然边界,其中单独的上下文实例有意义。
| 归档时间: |
|
| 查看次数: |
2063 次 |
| 最近记录: |