public class MyBackgroundService : IHostedService, IDisposable
{
private readonly IHostApplicationLifetime appLifetime;
private readonly IServiceScopeFactory scopeFactory;
public MyBackgroundService(IHostApplicationLifetime _appLifetime, IServiceScopeFactory _scopeFactory)
{
this.appLifetime = _appLifetime;
this.scopeFactory = _scopeFactory;
}
public Task StartAsync(CancellationToken cancellationToken)
{
using (var scope = scopeFactory.CreateScope())
{
var dbContext = scope.ServiceProvider.GetRequiredService<Context.MyDbContext>();
//此处的Context.MyDbContext是你的DbContext实例
//to do ....
}
}
public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
public void Dispose()
{
}
}
NetCore EfCore中如何将DbContext实例注入IHostedService?
ASP.NET背景服务示例
最新推荐文章于 2024-08-06 11:45:00 发布
本文介绍了一个ASP.NET Core中的后台服务实现示例。通过继承IHostedService接口,创建了一个名为MyBackgroundService的服务,该服务可以在应用启动时运行一些初始化任务,并在应用关闭时进行清理工作。示例中演示了如何注入依赖项并在StartAsync方法中使用这些依赖项来获取DbContext实例。
996

被折叠的 条评论
为什么被折叠?



