8[DefaultEvent(
"CollectionChanged")]
9[Editor(
"Microsoft.VSDesigner.Data.Design.ConstraintsCollectionEditor, Microsoft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
"System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
76 Add(constraint, addUniqueWhenAddingForeign:
true);
79 internal void Add(
Constraint constraint,
bool addUniqueWhenAddingForeign)
81 if (constraint ==
null)
86 if (constraint2 !=
null)
105 if (addUniqueWhenAddingForeign)
108 if (uniqueConstraint ==
null)
136 Add(uniqueConstraint);
139 Table.PrimaryKey = columns;
141 return uniqueConstraint;
147 Add(uniqueConstraint);
152 return uniqueConstraint;
158 Add(foreignKeyConstraint);
159 return foreignKeyConstraint;
165 Add(foreignKeyConstraint);
166 return foreignKeyConstraint;
178 if (constraints ==
null)
182 foreach (
Constraint constraint
in constraints)
184 if (constraint !=
null)
195 for (
int i = 0; i < columnsReference.Length; i++)
248 if (constraint ==
null)
260 constraint.InCollection =
true;
266 for (
int i = 0; i < oldLength; i++)
269 for (
int j = num; j < newLength; j++)
271 if (oldArray[i] == newArray[j])
287 for (
int k = 0; k < newLength; k++)
289 if (!newArray[k].InCollection)
299 if (constraint ==
null)
308 constraint.InCollection =
false;
340 return CanRemove(constraint, fThrowException:
false);
350 _table.PrimaryKey =
null;
375 for (
int k = 0; k <
count; k++)
390 internal bool Contains(
string name,
bool caseSensitive)
427 for (
int i = 0; i <
count; i++)
440 for (
int i = 0; i <
count; i++)
444 return uniqueConstraint;
453 for (
int i = 0; i <
count; i++)
455 if (
List[i] is
UniqueConstraint { Key: var
key } uniqueConstraint && key.ColumnsReference.Length == 1 && uniqueConstraint.Key.ColumnsReference[0] == column)
457 return uniqueConstraint;
466 for (
int i = 0; i <
count; i++)
470 return foreignKeyConstraint;
478 if (a1.Length != a2.Length)
482 for (
int i = 0; i < a1.Length; i++)
485 for (
int j = 0; j < a2.Length; j++)
503 if (constraint !=
null)
506 for (
int i = 0; i <
count; i++)
530 if (constraintName !=
null && 0 < constraintName.Length)
534 for (
int i = 0; i <
count; i++)
542 num = ((num == -1) ? i : (-2));
554 return "Constraint1";
567 for (
int i = 0; i <
count; i++)
582 if (constraint ==
null)
586 if (
CanRemove(constraint, fThrowException:
true))
592 Table.PrimaryKey =
null;
601 if (constraint ==
null)
611 if (constraint ==
null)
649 Add(uniqueConstraint);
654 for (
int j = 0; j < num; j++)
679 Add(foreignKeyConstraint);
690 for (
int k = 0; k < num; k++)
704 foreignKeyConstraint2.DeleteRule = foreignKeyConstraint.
_deleteRule;
705 foreignKeyConstraint2.UpdateRule = foreignKeyConstraint.
_updateRule;
706 Add(foreignKeyConstraint2);
virtual void Remove(object? obj)
virtual int Add(object? value)
virtual void CopyTo(Array array)
static bool IsCatchableOrSecurityExceptionType(Exception e)
void RegisterName(string name)
ConstraintCollection(DataTable table)
static bool CompareArrays(DataColumn[] a1, DataColumn[] a2)
void ArrayRemove(Constraint constraint)
UniqueConstraint FindKeyConstraint(DataColumn[] columns)
bool CanRemove(Constraint constraint, bool fThrowException)
ForeignKeyConstraint FindForeignKeyConstraint(DataColumn[] parentColumns, DataColumn[] childColumns)
string MakeName(int index)
readonly DataTable _table
int InternalIndexOf(string constraintName)
bool Contains(string name, bool caseSensitive)
void AddRange(Constraint[]? constraints)
void BaseAdd(Constraint constraint)
void Add(Constraint constraint, bool addUniqueWhenAddingForeign)
int IndexOf(Constraint? constraint)
void BaseRemove(Constraint constraint)
void FinishInitConstraints()
Constraint Add(string? name, DataColumn primaryKeyColumn, DataColumn foreignKeyColumn)
CollectionChangeEventHandler? CollectionChanged
Constraint[] _delayLoadingConstraints
bool CanRemove(Constraint constraint)
CollectionChangeEventHandler _onCollectionChanged
void AddUniqueConstraint(UniqueConstraint constraint)
Constraint Add(string? name, DataColumn column, bool primaryKey)
bool AutoGenerated(Constraint constraint)
bool _fLoadForeignKeyConstraintsOnly
bool Contains(string? name)
void AddForeignKeyConstraint(ForeignKeyConstraint constraint)
void OnCollectionChanged(CollectionChangeEventArgs ccevent)
void CopyTo(Constraint[] array, int index)
Constraint Add(string? name, DataColumn[] primaryKeyColumns, DataColumn[] foreignKeyColumns)
int IndexOf(string? constraintName)
void Remove(Constraint constraint)
void Add(Constraint constraint)
UniqueConstraint FindKeyConstraint(DataColumn column)
void UnregisterName(string name)
Constraint Add(string? name, DataColumn[] columns, bool primaryKey)
void BaseGroupSwitch(Constraint[] oldArray, int oldLength, Constraint[] newArray, int newLength)
void ArrayAdd(Constraint constraint)
Constraint FindConstraint(Constraint constraint)
bool CanBeRemovedFromCollection(ConstraintCollection constraint, bool fThrowException)
virtual string ConstraintName
void SetChildKeyConstraint(ForeignKeyConstraint value)
void SetParentKeyConstraint(UniqueConstraint value)
virtual ? UniqueConstraint ParentKeyConstraint
virtual ? ForeignKeyConstraint ChildKeyConstraint
DataTableCollection Tables
UniqueConstraint _primaryKey
ConstraintCollection Constraints
DataColumnCollection Columns
DataRelationCollection ParentRelations
DataRelation[] NestedParentRelations
DataRelationCollection ChildRelations
static Exception AddPrimaryKeyConstraint()
static Exception CaseInsensitiveNameConflict(string name)
static Exception ConstraintRemoveFailed()
static Exception ConstraintNotInTheTable(string constraint)
static Exception DuplicateConstraintName(string constraint)
static Exception ArgumentOutOfRange(string paramName)
static Exception DuplicateConstraint(string constraint)
static Exception InvalidOffsetLength()
static Exception CantAddConstraintToMultipleNestedTable(string tableName)
static Exception ConstraintParentValues()
static Exception ConstraintOutOfRange(int index)
static Exception UniqueConstraintViolation()
static Exception ConstraintForeignTable()
static Exception ArgumentNull(string paramName)
DataColumn[] RelatedColumnsReference
string[] _childColumnNames
override bool CanEnableConstraint()
string _parentTableNamespace
virtual DataTable RelatedTable
AcceptRejectRule _acceptRejectRule
string[] _parentColumnNames
override void CheckCanAddToCollection(ConstraintCollection constraints)
static readonly CollectionChangeEventArgs s_refreshEventArgs
int NamesEqual(string s1, string s2, bool fCaseSensitive, CultureInfo locale)
DataColumn[] ColumnsReference
void ConstraintIndexClear()
void ConstraintIndexInitialize()
override bool CanEnableConstraint()
static bool AutoGenerated(DataColumn col)
static ? Delegate Remove(Delegate? source, Delegate? value)
static ? Delegate Combine(Delegate? a, Delegate? b)
static CultureInfo InvariantCulture
delegate void CollectionChangeEventHandler(object? sender, CollectionChangeEventArgs e)