题
如何将DbContext
实例注入(使用标准依赖项注入)IHostedService
?
我尝试了什么
目前,我的IHostedService
类在构造函数中采用了MainContext
(源自DbContext
)实例。
当我运行该应用程序时,我得到:
无法使用单例“ Microsoft.Extensions.Hosting.IHostedService”中的作用域服务“ Microsoft.EntityFrameworkCore.DbContextOptions”。
因此,我尝试DbContextOptions
通过指定以下方式进行过渡:
services.AddDbContext<MainContext>(options =>
options.UseSqlite("Data Source=development.db"), ServiceLifetime.Transient);
在我Startup
班上。
但是,即使根据解决的Github问题,DbContextOptions
传递的应该具有与AddDbContext
调用中指定的生存期相同的错误,但错误仍然相同。
我不能使数据库上下文成为单例,否则并发调用将产生并发异常(由于数据库上下文不能保证是线程安全的)。