private static void AddUpdateDeleteProducts(ZipArchiveEntry entry) { IEnumerable<Product> products = null; using (var entryStream = entry.Open()) { Console.WriteLine("products.csv is {0} bytes", entry.Length); Console.WriteLine("Starting products at {0:hh:mm:ss.fff}", DateTime.Now); var stopwatch = new Stopwatch(); stopwatch.Start(); var reader = new StreamReader(entryStream); var csv = new CsvReader(reader); csv.Configuration.RegisterClassMap(new ProductMap()); products = csv.GetRecords<Product>().Where(p => !p.IsDead); var productCollection = new ProductCollection(); productCollection.SetItems(products); var importer = new NpgsqlBulkImporter(ConfigurationManager.ConnectionStrings["spurious"].ConnectionString, stopwatch); importer.BulkImport("products", productCollection); stopwatch.Stop(); Console.WriteLine("Finished products at {0:hh:mm:ss.fff}, taking {1}", DateTime.Now, stopwatch.Elapsed); } }