/// <summary> /// remove the given columns from the involved columns and replace it by the replacement /// </summary> /// <param name="column"></param> /// <param name="replacement"></param> public void removeColumn(DB.Column column, DB.Column replacement) { int columnIndex = -1; int replacementIndex = -1; for (int i = 0; i < this.involvedColumns.Count; i++) { var currentColumn = involvedColumns[i]; if (currentColumn == column) { columnIndex = i; } if (currentColumn == replacement) { replacementIndex = i; } if (columnIndex > -1 && replacementIndex > -1) { break; //found both don't bother continuing } } if (columnIndex > -1 && columnIndex != replacementIndex) { //check if the replacement is not already there if (replacementIndex > -1) { _involvedColumns.RemoveAt(columnIndex); } else { //replace column by its replacement this._involvedColumns[columnIndex] = (Column)replacement; } } }
/// <summary> /// remove the given column from the involved columns /// </summary> /// <param name="column">the column to remove</param> public void removeColumn(DB.Column column) { if (involvedColumns.Contains(column)) { _involvedColumns.Remove((Column)column); } }
public void addColumn(DB.Column column) { //initialise columns if (this.columns != null) { this._columns.Add((Column)column); } }
/// <summary> /// remove the given column from the table and replace it in constraints by the replacement columns /// </summary> /// <param name="column">the column to remove</param> /// <param name="replacement">the column to be used as replacement in constraints</param> public void removeColumn(DB.Column column, DB.Column replacement) { if (this.columns != null) { this._columns.Remove((Column)column); } foreach (var constraint in this.constraints.Where(x => x.involvedColumns.Contains(column))) { constraint.removeColumn(column, replacement); } }
private List <DB.Column> getCorrespondingColumns() { var correspondingColumns = new List <DB.Column>(); foreach (var involvedColumn in _involvedColumns) { DB.Column correspondingColumn = involvedColumn; if (involvedColumn.ownerTable != this.ownerTable) { correspondingColumn = this.ownerTable.columns.FirstOrDefault(x => x.name == involvedColumn.name); } if (correspondingColumn != null) { correspondingColumns.Add(correspondingColumn); } } return(correspondingColumns); }