【发布时间】:2016-08-29 01:31:38
【问题描述】:
在我的 ASP.NET Core 应用程序中,我有一些复杂的业务逻辑,涉及多个线程执行 HTTP 请求范围之外的数据库操作。从处理请求的同一个线程访问数据库是微不足道的,但是当产生需要自己的 DbContext 的线程时,这变得乏味。由于 DbContext 本身不是线程安全的,因此除了从 IServiceProvider 获取 DbContext 之外,我还尝试创建一个新的 DbContext 及其选项。使用这两种方法,我都会遇到以下异常:
在配置时尝试使用上下文。一种 DbContext 实例不能在 OnConfiguring 内部使用,因为它是 此时仍在配置中。
我的印象是我以错误的方式处理这个问题,而且我不应该像这样处理数据库连接。那么我应该如何从处理传入请求的线程中获取一个单独的线程中的 DbContext?
【问题讨论】:
-
在您使用的每个线程中创建一个新的 DbContext 实例。 DbContext 不是线程安全的。
-
能否提供一段代码?
标签: c# asp.net multithreading entity-framework asp.net-core