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

◆ FinishInitConstraints()

void System.Data.ConstraintCollection.FinishInitConstraints ( )
inlinepackage

Definition at line 630 of file ConstraintCollection.cs.

631 {
632 if (_delayLoadingConstraints == null)
633 {
634 return;
635 }
636 for (int i = 0; i < _delayLoadingConstraints.Length; i++)
637 {
638 int num;
639 DataColumn[] array;
640 if (_delayLoadingConstraints[i] is UniqueConstraint)
641 {
643 {
644 continue;
645 }
646 UniqueConstraint uniqueConstraint = (UniqueConstraint)_delayLoadingConstraints[i];
647 if (uniqueConstraint._columnNames == null)
648 {
649 Add(uniqueConstraint);
650 continue;
651 }
652 num = uniqueConstraint._columnNames.Length;
653 array = new DataColumn[num];
654 for (int j = 0; j < num; j++)
655 {
656 array[j] = _table.Columns[uniqueConstraint._columnNames[j]];
657 }
658 if (uniqueConstraint._bPrimaryKey)
659 {
660 if (_table._primaryKey != null)
661 {
662 throw ExceptionBuilder.AddPrimaryKeyConstraint();
663 }
664 Add(uniqueConstraint.ConstraintName, array, primaryKey: true);
665 }
666 else
667 {
668 UniqueConstraint constraint = new UniqueConstraint(uniqueConstraint._constraintName, array);
669 if (FindConstraint(constraint) == null)
670 {
671 Add(constraint);
672 }
673 }
674 continue;
675 }
676 ForeignKeyConstraint foreignKeyConstraint = (ForeignKeyConstraint)_delayLoadingConstraints[i];
677 if (foreignKeyConstraint._parentColumnNames == null || foreignKeyConstraint._childColumnNames == null)
678 {
679 Add(foreignKeyConstraint);
680 continue;
681 }
682 if (_table.DataSet == null)
683 {
685 continue;
686 }
687 num = foreignKeyConstraint._parentColumnNames.Length;
688 array = new DataColumn[num];
689 DataColumn[] array2 = new DataColumn[num];
690 for (int k = 0; k < num; k++)
691 {
692 if (foreignKeyConstraint._parentTableNamespace == null)
693 {
694 array[k] = _table.DataSet.Tables[foreignKeyConstraint._parentTableName].Columns[foreignKeyConstraint._parentColumnNames[k]];
695 }
696 else
697 {
698 array[k] = _table.DataSet.Tables[foreignKeyConstraint._parentTableName, foreignKeyConstraint._parentTableNamespace].Columns[foreignKeyConstraint._parentColumnNames[k]];
699 }
700 array2[k] = _table.Columns[foreignKeyConstraint._childColumnNames[k]];
701 }
702 ForeignKeyConstraint foreignKeyConstraint2 = new ForeignKeyConstraint(foreignKeyConstraint._constraintName, array, array2);
703 foreignKeyConstraint2.AcceptRejectRule = foreignKeyConstraint._acceptRejectRule;
704 foreignKeyConstraint2.DeleteRule = foreignKeyConstraint._deleteRule;
705 foreignKeyConstraint2.UpdateRule = foreignKeyConstraint._updateRule;
706 Add(foreignKeyConstraint2);
707 }
709 {
711 }
712 }
Constraint FindConstraint(Constraint constraint)
DataTableCollection Tables
Definition DataSet.cs:396
UniqueConstraint _primaryKey
Definition DataTable.cs:124
DataColumnCollection Columns
Definition DataTable.cs:327

References System.Data.ForeignKeyConstraint._acceptRejectRule, System.Data.UniqueConstraint._bPrimaryKey, System.Data.ForeignKeyConstraint._childColumnNames, System.Data.UniqueConstraint._columnNames, System.Data.ForeignKeyConstraint._constraintName, System.Data.UniqueConstraint._constraintName, System.Data.ConstraintCollection._delayLoadingConstraints, System.Data.ForeignKeyConstraint._deleteRule, System.Data.ConstraintCollection._fLoadForeignKeyConstraintsOnly, System.Data.ForeignKeyConstraint._parentColumnNames, System.Data.ForeignKeyConstraint._parentTableName, System.Data.ForeignKeyConstraint._parentTableNamespace, System.Data.DataTable._primaryKey, System.Data.ConstraintCollection._table, System.Data.ForeignKeyConstraint._updateRule, System.Data.Add, System.Data.ExceptionBuilder.AddPrimaryKeyConstraint(), System.array, System.Data.DataTable.Columns, System.Data.Constraint.ConstraintName, System.Data.DataTable.DataSet, System.Data.ConstraintCollection.FindConstraint(), and System.Data.DataSet.Tables.

Referenced by System.Data.DataTable.EndInit().