我已经尝试了什么: 我目前让我的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
调用中指定的相同生命周期。
我不能将数据库上下文设置为单例,否则对它的并发调用将导致并发异常(因为不能保证数据库上下文是线程安全的)。