public static async Task Main() { var dbContext = new BulkInsertContext(); var paymentRepositories = new List <IPaymentRepository>() { new EFDummyAddRepository(dbContext), new EFAddRepository(dbContext), new EFAddRangeRepository(dbContext), new SqlBulkCopyRepository(dbContext), new AutoDetectChangesDisabledPaymentRepositoryDecorator(new EFDummyAddRepository(dbContext)), new AutoDetectChangesDisabledPaymentRepositoryDecorator(new EFAddRepository(dbContext)), new AutoDetectChangesDisabledPaymentRepositoryDecorator(new EFAddRangeRepository(dbContext)), new AutoDetectChangesDisabledPaymentRepositoryDecorator(new SqlBulkCopyRepository(dbContext)), // new BulkInsertRepository(dbContext) }; IPerformanceService performanceService = new PerformanceService(); var result = await performanceService.CompareAsync(paymentRepositories); var serializedResult = JsonSerializer.Serialize(result, new JsonSerializerOptions { WriteIndented = true }); Console.WriteLine(serializedResult); Console.Read(); }