protected Index(Index source) { _table = source._table; _name = source._name; _unique = source._unique; _definition = source._definition; _conflict = source._conflict; _dirty = source._dirty; foreach (IndexColumn c in source._columns) { IndexColumn copy = ((ICloneable)c).Clone() as IndexColumn; copy._parent = this; _columns.Add(copy); } }