namespace MyOffice.Web.Infrastructure; using DbContext; /// /// Runs EF migrate + seed on startup with a scoped DbContext. /// public sealed class DatabaseInitializerHostedService : IHostedService { private readonly IServiceProvider _serviceProvider; private readonly ILogger _logger; public DatabaseInitializerHostedService( IServiceProvider serviceProvider, ILogger logger ) { _serviceProvider = serviceProvider; _logger = logger; } public async Task StartAsync(CancellationToken cancellationToken) { await using var scope = _serviceProvider.CreateAsyncScope(); var db = scope.ServiceProvider.GetRequiredService(); _logger.LogInformation("Applying database migrations and seed data…"); await DatabaseBootstrapper.InitializeAsync(db, cancellationToken); _logger.LogInformation("Database ready."); } public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; }