multithreading - 使用 IServiceScopeFactory 为多线程创建 Scoped DB 上下文的缺点
问题描述
在我们的应用程序架构中,我们使用 EF 作为数据库的 ORM。在使用异步编程时,我们遇到了一个问题,即当通过构造函数注入时,DBContext 不能被多个线程同时使用。
为了避免这种情况,我们使用 IServiceScopeFactory 并在需要时通过 using () 语句创建 DBContext 的范围上下文。这允许我们同时通过 EF 运行 DB 调用。
对于不并发运行的任务,我们通过构造函数注入 DBContext 并使用它。
在使用 EF 编写异步任务时,使用 IServiceScopeFactory 的直接缺点是什么(如果有的话)?
我们使用的方法可以在这里找到:IServiceScopeFactory 和 EF
谢谢
解决方案
推荐阅读
- python - 根据优先级在熊猫数据框中创建二进制列
- vhdl - 错误:带有移位单元的“表达式不是常数”
- java - Angular 7 和 Spring Boot 应用程序 - 请求的资源上不存在“Access-Control-Allow-Origin”标头
- mysql - 需要帮助舍入从 python 函数返回的 Mysql 结果
- c# - 您将如何实现将此属性映射到可序列化类对象的一般情况?
- php - 显示在网页加载时执行的 PHP 文件的输出/回显
- php - 如何针对 Laravel 中的任何按钮添加自定义操作?
- android - 无法通过蓝牙成功读取数据
- linux - For循环处理所有学生及其在线状态的列表
- json - 为什么 mongoexport 会生成格式错误的 JSON?