【发布时间】:2017-09-08 07:22:51
【问题描述】:
我已经使用如下标准代码注册了一个实体框架 DBContext:
public void ConfigureServices(IServiceCollection services)
{
[...]
services.AddDbContext<MyDbContextType>(ServiceLifetime.Scoped);
}
这对于从需要 EF 服务的控制器调用的服务非常有效。
但是,我有几个特殊的控制器。他们在超过 Web 请求生命周期的新线程上启动作业。当这些作业使用我的 DbContext(或使用使用我的 DbContext 的服务)时,会引发错误,因为范围内的实例已被释放。
有没有办法只为某些控制器覆盖我注入的 DbContext 的服务生命周期?或者您可以提出其他解决方案吗?
【问题讨论】:
标签: c# dependency-injection asp.net-core