private void ArrayRemove(DataColumn column) { column.SetOrdinalInternal(-1); this._list.Remove(column); int count = this._list.Count; for (int i = 0; i < count; i++) { ((DataColumn)this._list[i]).SetOrdinalInternal(i); } if (column.ImplementsIChangeTracking) { this.RemoveColumnsImplementingIChangeTrackingList(column); } }
internal DataColumn AddUniqueKey(int position) { if (_colUnique != null) return _colUnique; // check to see if we can use already existant PrimaryKey DataColumn[] pkey = PrimaryKey; if (pkey.Length == 1) // We have one-column primary key, so we can use it in our heirarchical relation return pkey[0]; // add Unique, but not primaryKey to the table string keyName = XMLSchema.GenUniqueColumnName(TableName + "_Id", this); DataColumn key = new DataColumn(keyName, typeof(Int32), null, MappingType.Hidden); key.Prefix = tablePrefix; key.AutoIncrement = true; key.AllowDBNull = false; key.Unique = true; if (position == -1) Columns.Add(key); else { // we do have a problem and Imy idea is it is bug. Ask Enzo while Code review. Why we do not set ordinal when we call AddAt? for(int i = Columns.Count -1; i >= position; i--) { this.Columns[i].SetOrdinalInternal(i+1); } Columns.AddAt(position, key); key.SetOrdinalInternal(position); } if (pkey.Length == 0) PrimaryKey = new DataColumn[] { key }; _colUnique = key; return _colUnique; }
/// <summary> /// Adds the column to the columns array. /// </summary> private void ArrayAdd(DataColumn column) { _list.Add(column); column.SetOrdinalInternal(_list.Count - 1); CheckIChangeTracking(column); }
private void ArrayRemove(DataColumn column) { column.SetOrdinalInternal(-1); this._list.Remove(column); int count = this._list.Count; for (int i = 0; i < count; i++) { ((DataColumn) this._list[i]).SetOrdinalInternal(i); } if (column.ImplementsIChangeTracking) { this.RemoveColumnsImplementingIChangeTrackingList(column); } }
private void ArrayAdd(DataColumn column) { this._list.Add(column); column.SetOrdinalInternal(this._list.Count - 1); this.CheckIChangeTracking(column); }
internal DataColumn AddUniqueKey(int position) { if (this._colUnique == null) { DataColumn[] primaryKey = this.PrimaryKey; if (primaryKey.Length == 1) { return primaryKey[0]; } DataColumn column = new DataColumn(XMLSchema.GenUniqueColumnName(this.TableName + "_Id", this), typeof(int), null, MappingType.Hidden) { Prefix = this.tablePrefix, AutoIncrement = true, AllowDBNull = false, Unique = true }; if (position == -1) { this.Columns.Add(column); } else { for (int i = this.Columns.Count - 1; i >= position; i--) { this.Columns[i].SetOrdinalInternal(i + 1); } this.Columns.AddAt(position, column); column.SetOrdinalInternal(position); } if (primaryKey.Length == 0) { this.PrimaryKey = new DataColumn[] { column }; } this._colUnique = column; } return this._colUnique; }