Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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}");
                    }
                }
            });
        }