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

◆ PrimaryKey

DataColumn [] System.Data.DataTable.PrimaryKey
getsetinherited

Definition at line 606 of file DataTable.cs.

607 {
608 get
609 {
610 UniqueConstraint primaryKey = _primaryKey;
611 if (primaryKey != null)
612 {
613 return primaryKey.Key.ToArray();
614 }
615 return Array.Empty<DataColumn>();
616 }
618 set
619 {
620 UniqueConstraint uniqueConstraint = null;
621 UniqueConstraint uniqueConstraint2 = null;
622 if (fInitInProgress && value != null)
623 {
625 return;
626 }
627 if (value != null && value.Length != 0)
628 {
629 int num = 0;
630 for (int i = 0; i < value.Length && value[i] != null; i++)
631 {
632 num++;
633 }
634 if (num != 0)
635 {
636 DataColumn[] array = value;
637 if (num != value.Length)
638 {
639 array = new DataColumn[num];
640 for (int j = 0; j < num; j++)
641 {
642 array[j] = value[j];
643 }
644 }
645 uniqueConstraint = new UniqueConstraint(array);
646 if (uniqueConstraint.Table != this)
647 {
648 throw ExceptionBuilder.TableForeignPrimaryKey();
649 }
650 }
651 }
653 {
654 return;
655 }
656 if ((uniqueConstraint2 = (UniqueConstraint)Constraints.FindConstraint(uniqueConstraint)) != null)
657 {
658 uniqueConstraint.ColumnsReference.CopyTo(uniqueConstraint2.Key.ColumnsReference, 0);
660 }
661 UniqueConstraint primaryKey = _primaryKey;
662 _primaryKey = null;
663 if (primaryKey != null)
664 {
665 primaryKey.ConstraintIndex.RemoveRef();
666 if (_loadIndex != null)
667 {
669 _loadIndex = null;
670 }
671 if (_loadIndexwithOriginalAdded != null)
672 {
675 }
677 {
680 }
682 }
683 if (uniqueConstraint != null && uniqueConstraint2 == null)
684 {
686 }
688 _primaryIndex = ((uniqueConstraint != null) ? uniqueConstraint.Key.GetIndexDesc() : Array.Empty<IndexField>());
689 if (_primaryKey != null)
690 {
691 uniqueConstraint.ConstraintIndex.AddRef();
692 for (int k = 0; k < uniqueConstraint.ColumnsReference.Length; k++)
693 {
694 uniqueConstraint.ColumnsReference[k].AllowDBNull = false;
695 }
696 }
697 }
698 }
void CopyTo(KeyValuePair< TKey, TValue >[] array, int index)
void Remove(Constraint constraint)
void Add(Constraint constraint)
Constraint FindConstraint(Constraint constraint)
DataColumn[] _delayedSetPrimaryKey
Definition DataTable.cs:128
UniqueConstraint _primaryKey
Definition DataTable.cs:124
ConstraintCollection Constraints
Definition DataTable.cs:332
Index _loadIndexwithOriginalAdded
Definition DataTable.cs:132
Index _loadIndexwithCurrentDeleted
Definition DataTable.cs:134
IndexField[] _primaryIndex
Definition DataTable.cs:126
int RemoveRef()
Definition Index.cs:215

Referenced by System.Data.DataTable.AddUniqueKey(), System.Data.DataTable.CloneTo(), System.Data.DataTable.EndInit(), System.Data.DataTable.Load(), and System.Data.Merger.MergeSchema().