gpt4 book ai didi

c# - EF 中的 DbContext 是否应该具有较短的生命周期?

转载 作者:行者123 更新时间:2023-11-30 15:32:30 25 4
gpt4 key购买 nike

我的服务器上有一些长时间运行的任务。基本上它们就像计划任务 - 它们会不时运行。

他们都需要访问数据库,为此我使用 Entity Framework 。每个任务都使用 DbContext 进行访问。

应该在每次运行时重新创建 DbContext 对象还是应该重用它?

最佳答案

我应该说“视情况而定”,因为可能存在两个答案都有效的情况,但最合理的答案是“上下文应该在不需要时尽快处理”,这实际上意味着“处理而不是早于稍后”。

这样的答案带来的风险是,新手有时会得出结论,上下文应该尽可能多地处理,这有时会导致我审查的代码,其中有连续的“使用”创建上下文,将其用于一个或两个操作,处置,然后下一行出现另一个上下文。这当然也不推荐。

对于网络应用程序,自然生命周期与网络请求的生命周期相关联。在系统服务/其他长期运行的应用程序的情况下,生命周期策略之一是“每个业务流程实例”/“每个用例实例”,其中业务处理/用例实现定义了自然边界,其中单独的上下文实例是有意义的。

关于c# - EF 中的 DbContext 是否应该具有较短的生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18947970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com