public async Task <long> BulkInsert <T>(string tableName, List <T> bulk) { using var bulkCopyInterface = new ClickHouseBulkCopy(_clickHouseConnection) { DestinationTableName = tableName, BatchSize = bulk.Count }; var(items, columns) = _commandFormatter.BulkInsert(bulk); await bulkCopyInterface.WriteToServerAsync(items, columns); return(bulkCopyInterface.RowsWritten); }
public void BulkInsert <T>(string tableName, IEnumerable <string> columns, IEnumerable <T> bulk) { var query = _commandFormatter.BulkInsert(tableName, columns); Execute(cmd => { cmd.Parameters.Add(new ClickHouseParameter { ParameterName = "bulk", Value = bulk }); cmd.ExecuteNonQuery(); }, query); }