Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ IsConstraintViolated()

override bool System.Data.ForeignKeyConstraint.IsConstraintViolated ( )
inlinepackage

Definition at line 235 of file ForeignKeyConstraint.cs.

236 {
237 Index sortIndex = _childKey.GetSortIndex();
238 object[] uniqueKeyValues = sortIndex.GetUniqueKeyValues();
239 bool result = false;
240 Index sortIndex2 = _parentKey.GetSortIndex();
241 for (int i = 0; i < uniqueKeyValues.Length; i++)
242 {
243 object[] array = (object[])uniqueKeyValues[i];
244 if (!IsKeyNull(array) && !sortIndex2.IsKeyInIndex(array))
245 {
246 DataRow[] rows = sortIndex.GetRows(sortIndex.FindRecords(array));
247 string rowError = System.SR.Format(System.SR.DataConstraint_ForeignKeyViolation, ConstraintName, ExceptionBuilder.KeysToString(array));
248 for (int j = 0; j < rows.Length; j++)
249 {
250 rows[j].RowError = rowError;
251 }
252 result = true;
253 }
254 }
255 return result;
256 }
virtual string ConstraintName
Definition Constraint.cs:24
DataRow[] GetRows(object[] values)
Definition Index.cs:611
object[] GetUniqueKeyValues()
Definition Index.cs:408
static string Format(string resourceFormat, object p1)
Definition SR.cs:118
static string DataConstraint_ForeignKeyViolation
Definition SR.cs:374
Definition SR.cs:7
Index GetSortIndex()
Definition DataKey.cs:184

References System.Data.ForeignKeyConstraint._childKey, System.Data.ForeignKeyConstraint._parentKey, System.array, System.Data.Constraint.ConstraintName, System.SR.DataConstraint_ForeignKeyViolation, System.Data.Index.FindRecords(), System.SR.Format(), System.Data.Index.GetRows(), System.Data.DataKey.GetSortIndex(), System.Data.Index.GetUniqueKeyValues(), System.Data.Index.IsKeyInIndex(), System.Data.ForeignKeyConstraint.IsKeyNull(), System.Data.ExceptionBuilder.KeysToString(), and System.Data.DataRow.RowError.