加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 03:16:30 所属栏目:asp.Net 来源:网络整理
导读:考虑一个ASP.NET Web API 2应用程序,它使用Entity Framework提供对几个数据库表的相当直接的访问. 在为大多数并发请求提供服务方面,对象生命周期的以下哪个选项最佳? 实例化所有请求使用的单例DbContext. 为每个传入请求实例化一个DbContext. 为服务传入请
考虑一个ASP.NET Web API 2应用程序,它使用Entity Framework提供对几个数据库表的相当直接的访问.

在为大多数并发请求提供服务方面,对象生命周期的以下哪个选项最佳?

>实例化所有请求使用的单例DbContext.
>为每个传入请求实例化一个DbContext.
>为服务传入请求的线程池中的每个线程实例化一个DbContext?
>其他?

后续问题 – 如果我将要求更改为“需要最少量的DB服务器资源”该怎么办?什么是最好的选择?

解决方法

基于 a detailed reply到另一个问题:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读