protected virtual void EnsureDatabaseMigrations(IApplicationBuilder app) { using IServiceScope scope = app.ApplicationServices.CreateScope(); IServiceProvider services = scope.ServiceProvider; try { ArpaContext context = services.GetRequiredService <ArpaContext>(); context.Database.Migrate(); IDataSeeder dataSeeder = services.GetRequiredService <IDataSeeder>(); dataSeeder.SeedDataAsync().Wait(); } catch (Exception ex) { ILogger <Startup> logger = services.GetRequiredService <ILogger <Startup> >(); logger.LogError(ex, "An error occured during database migration"); throw; } }