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

◆ ValidateMultipleNestedRelations()

void System.Data.DataRelation.ValidateMultipleNestedRelations ( )
inlinepackage

Definition at line 598 of file DataRelation.cs.

599 {
600 if (!Nested || !CheckMultipleNested || ChildTable.NestedParentRelations.Length == 0)
601 {
602 return;
603 }
604 DataColumn[] childColumns = ChildColumns;
605 if (childColumns.Length != 1 || !IsAutoGenerated(childColumns[0]))
606 {
607 throw ExceptionBuilder.TableCantBeNestedInTwoTables(ChildTable.TableName);
608 }
609 if (!XmlTreeGen.AutoGenerated(this))
610 {
611 throw ExceptionBuilder.TableCantBeNestedInTwoTables(ChildTable.TableName);
612 }
613 foreach (Constraint constraint in ChildTable.Constraints)
614 {
615 if (constraint is ForeignKeyConstraint)
616 {
617 ForeignKeyConstraint fk = (ForeignKeyConstraint)constraint;
618 if (!XmlTreeGen.AutoGenerated(fk, checkRelation: true))
619 {
620 throw ExceptionBuilder.TableCantBeNestedInTwoTables(ChildTable.TableName);
621 }
622 }
623 else
624 {
625 UniqueConstraint unique = (UniqueConstraint)constraint;
626 if (!XmlTreeGen.AutoGenerated(unique))
627 {
628 throw ExceptionBuilder.TableCantBeNestedInTwoTables(ChildTable.TableName);
629 }
630 }
631 }
632 }
virtual DataColumn[] ChildColumns
virtual DataTable ChildTable
bool IsAutoGenerated(DataColumn col)

References System.Data.XmlTreeGen.AutoGenerated(), System.Data.DataRelation.CheckMultipleNested, System.Data.DataRelation.ChildColumns, System.Data.DataRelation.ChildTable, System.Data.DataRelation.IsAutoGenerated(), System.Data.DataRelation.Nested, and System.Data.ExceptionBuilder.TableCantBeNestedInTwoTables().

Referenced by System.Data.DataRelationCollection.AddCore().