private void SqlUpdateIds(IEnumerable <TInput> rowsToUpdate) { if (rowsToUpdate == null || rowsToUpdate?.Count() == 0) { return; } TableDefinition updateDefinition = new TableDefinition(); if (DestinationTableDefinition == null) { DestinationTableDefinition = TableDefinition.FromTableName(this.DbConnectionManager, TableName); } IdColumnNames.ForEach(idcol => updateDefinition.Columns.Add(DestinationTableDefinition.Columns.Where(col => col.Name == idcol).FirstOrDefault())); UpdateColumnNames.ForEach(compcol => updateDefinition.Columns.Add(DestinationTableDefinition.Columns.Where(col => col.Name == compcol).FirstOrDefault())); TableData data = new TableData(updateDefinition); foreach (var row in rowsToUpdate) { List <object> updateData = new List <object>(); updateData.AddRange(GetIdColumnValues(row)); updateData.AddRange(GetUpdateColumnValues(row)); data.Rows.Add(updateData.ToArray()); } SqlTask.BulkUpdate(this.ConnectionManager, data, TableName, UpdateColumnNames, IdColumnNames); }