Ejemplo n.º 1
0
        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);
        }