private async Task BulkCopyExecuteAsync(IDataReader sourceDataReader, SqlConnection targetConnection, string targetTableName, IEnumerable<ColumnsMapping> columnsMappings, Action<long> rowsCopiedNotify) { using (var bulkCopy = new SqlBulkCopy(targetConnection)) { if (columnsMappings != null) { var bulkMappings = CreateBulkCopyMappings(columnsMappings); bulkCopy.AddMappings(bulkMappings); } bulkCopy.DestinationTableName = targetTableName; bulkCopy.BatchSize = _batchSize; bulkCopy.NotifyAfter = _notifyAfter; bulkCopy.BulkCopyTimeout = _bulkCopyTimeout; if (rowsCopiedNotify != null) { bulkCopy.SqlRowsCopied += (sender, e) => rowsCopiedNotify(e.RowsCopied); } await bulkCopy.WriteToServerAsync(sourceDataReader); } }
private void BulkCopyExecute(IDataReader sourceDataReader, SqlConnection targetConnection, string targetTableName, IEnumerable<ColumnsMapping> columnsMappings) { using (var bulkCopy = new SqlBulkCopy(targetConnection)) { if (columnsMappings != null) { var bulkMappings = CreateBulkCopyMappings(columnsMappings); bulkCopy.AddMappings(bulkMappings); } bulkCopy.DestinationTableName = targetTableName; bulkCopy.BatchSize = _batchSize; bulkCopy.NotifyAfter = _notifyAfter; bulkCopy.WriteToServer(sourceDataReader); } }