gpt4 book ai didi

entity-framework - ASP.NET Web API 中 DbContext 的推荐生命周期?

转载 作者:行者123 更新时间:2023-12-03 07:27:06 25 4
gpt4 key购买 nike

考虑一个 ASP.NET Web API 2 应用程序,它使用 Entity Framework 提供对多个数据库表的相当简单的访问。

以下哪种对象生命周期选项最适合为最并发的请求提供服务?

  1. 实例化一个供所有请求使用的单例 DbContext。
  2. 为每个传入请求实例化一个 DbContext。
  3. 为线程池中为传入请求提供服务的每个线程实例化一个 DbContext?
  4. 其他?

后续问题 - 如果我将要求更改为“需要最少的数据库服务器资源”会怎么样?那么最好的选择是什么?

最佳答案

基于a detailed reply另一个问题:

我的问题中的选项1和3完全无效。原因是DbContext不是线程安全的,多线程访问会带来数据状态不一致并抛出异常。即使在“每线程”情况下,ASP.NET Web API 也可能在多个线程之间任意转移单个请求的处理。

选项 2 - 为每个传入请求实例化一个 DbContext - 是首选方法,因为它确保一次只有一个线程可以访问 DbContext。

关于entity-framework - ASP.NET Web API 中 DbContext 的推荐生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25473547/

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