首页 > 解决方案 > 使用 IServiceScopeFactory 为多线程创建 Scoped DB 上下文的缺点

问题描述

在我们的应用程序架构中,我们使用 EF 作为数据库的 ORM。在使用异步编程时,我们遇到了一个问题,即当通过构造函数注入时,DBContext 不能被多个线程同时使用。

为了避免这种情况,我们使用 IServiceScopeFactory 并在需要时通过 using () 语句创建 DBContext 的范围上下文。这允许我们同时通过 EF 运行 DB 调用。

对于不并发运行的任务,我们通过构造函数注入 DBContext 并使用它。

在使用 EF 编写异步任务时,使用 IServiceScopeFactory 的直接缺点是什么(如果有的话)?

我们使用的方法可以在这里找到:IServiceScopeFactory 和 EF

谢谢

标签: multithreadingasp.net-coreasynchronousdbcontext

解决方案


推荐阅读