public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using var scope = host.Services.CreateScope(); var services = scope.ServiceProvider; try{ var context = services.GetRequiredService <DataContext>(); var userManager = services.GetRequiredService <UserManager <AppUser> >(); var roleManager = services.GetRequiredService <RoleManager <AppRole> >(); await context.Database.MigrateAsync(); await Seed.SeedCountry(context); await Seed.SeedProvince(context); await Seed.SeedCity(context); await Seed.SeedCategory(context); await Seed.SeedBrands(context); await Seed.SeedProducts(context); await Seed.SeedUsers(userManager, roleManager); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occurred during migration"); } await host.RunAsync(); }