private void SetupDatabase(IServiceCollection services) { services.AddSingleton <DataContext>(new DataContext( new DbContextOptionsBuilder <DataContext>() .UseInMemoryDatabase("ReportTest") .Options )); var sp = services.BuildServiceProvider(); using (var scope = sp.CreateScope()) { var scopedServices = scope.ServiceProvider; var db = scopedServices.GetRequiredService <DataContext>(); var logger = scopedServices.GetRequiredService <ILogger <StartupAppFactory> >(); db.Database.EnsureCreated(); try { Fakes.InitializeDbForTesting(db); // And then to detach everything foreach (var entity in db.ChangeTracker.Entries()) { entity.State = EntityState.Detached; } } catch (Exception ex) { logger.LogError( ex, "An error occurred seeding the database with test data. Error: {Message}", ex.Message ); } } }