public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var scopedServices = scope.ServiceProvider; var appDb = scopedServices.GetRequiredService <AppDbContext>(); var logger = scopedServices.GetRequiredService <ILogger <Program> >(); // Ensure the database is created. appDb.Database.EnsureCreated(); try { // Add testing data for memoryDB AppDbSeedData.LoadSeedData(appDb); } catch (Exception ex) { logger.LogError(ex, $"An error occurred seeding the database with test data. Error: {ex?.Message}"); } } host.Run(); }
protected override void ConfigureWebHost(IWebHostBuilder builder) { builder.ConfigureServices(services => { // Create a new service provider. var serviceProvider = new ServiceCollection() .AddEntityFrameworkInMemoryDatabase() .BuildServiceProvider(); // Add a database context (AppDbContext) using an in-memory database for testing. services.AddDbContext <AppDbContext>(options => { options.UseInMemoryDatabase("EmployeeMemoryDB"); options.UseInternalServiceProvider(serviceProvider); }); // Create a scope (with the built service provider) to obtain a reference to the database contexts using (var scope = services.BuildServiceProvider().CreateScope()) { var scopedServices = scope.ServiceProvider; var appDb = scopedServices.GetRequiredService <AppDbContext>(); var logger = scopedServices.GetRequiredService <ILogger <CustomWebApplicationFactory> >(); // Ensure the database is created. appDb.Database.EnsureCreated(); try { // Add testing data for memoryDB AppDbSeedData.LoadSeedData(appDb); } catch (Exception ex) { logger.LogError(ex, $"An error occurred seeding the database with test data. Error: {ex?.Message}"); } } }); }