private void DropInMemory(TestDbContextCache <TContext> cache, string instanceName) { if (cache.ContainsKey(instanceName)) { _logger.LogInformation($"Dropping in-memory history instance {instanceName} for {typeof(TContext).Name}"); var context = cache[instanceName]; TestDbContextManager <TContext> .DropInMemoryDatabase(context); cache.Remove(instanceName); } }
private void GetOrAddInMemoryDatabase(TRepo repo, TestDbContextCache <TContext> cache, string instanceName, string baseDatabaseName) { if (cache.ContainsKey(instanceName)) { repo.Context = cache[instanceName]; _logger.LogInformation($"Using existing in-memory database {baseDatabaseName}, instance = {instanceName}"); } else { _logger.LogInformation($"Creating in-memory database {baseDatabaseName}, instance = {instanceName}"); var dbContext = TestDbContextManager <TContext> .CreateInMemoryDatabase(baseDatabaseName, instanceName); repo.Context = dbContext; repo.Context.Database.EnsureCreated(); cache.Add(instanceName, repo.Context); } }