Mar*_*tin 5 c# asp.net multithreading entity-framework asp.net-core
在我的ASP.NET核心应用程序中,我有一些复杂的业务逻辑,涉及多个线程在HTTP请求范围之外进行数据库操作.从处理请求的同一线程访问数据库是微不足道的,但是当产生需要自己的DbContext的线程时,这变得乏味.由于DbContext本身不是线程安全的,除了从IServiceProvider获取DbContext之外,我还尝试创建一个新的DbContext及其选项.使用这两种方法,我得到以下异常:
尝试在配置上下文时使用上下文.DbContext实例不能在OnConfiguring内使用,因为此时仍在配置它.
我的印象是我以错误的方式处理这个问题而且我不应该像这样处理数据库连接.那么我怎么能在一个处理传入请求的单独线程中获取DbContext?
Mar*_*tin -1
事实证明,我的测试代码有一个小拼写错误,使其在所有线程中使用相同的 DbContext。但是,我需要创建一个新的 DbContext 实例,但我无法通过问题中提到的 IServiceProvider 获取实例。