public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { int i; InitInProgress = true; base.ConstraintName = constraintName; // "parentTableName" is searched in the "DataSet" to which the "DataTable" // from which AddRange() is called // childTable is the "DataTable" which calls AddRange() // Keep reference to parentTableName to resolve later _parentTableName = parentTableName; // Keep a copy of parentColumnNames to resolve later _parentColumnNames = new string [parentColumnNames.Length]; for (i = 0; i < parentColumnNames.Length; i++) { _parentColumnNames[i] = parentColumnNames[i]; } // Keep a copy of childColumnNames to resolve later _childColumnNames = new string [childColumnNames.Length]; for (i = 0; i < childColumnNames.Length; i++) { _childColumnNames[i] = childColumnNames[i]; } _acceptRejectRule = acceptRejectRule; _deleteRule = deleteRule; _updateRule = updateRule; }
/// <summary> /// Creates a relation to a child table /// </summary> /// <typeparam name="T">The child type</typeparam> /// <param name="name">The name of the relation</param> /// <param name="parentColumnName">The parent column name, i.e. name of column in this table</param> /// <param name="childColumnName">The child column name, i.e. name of column in child table T</param> /// <param name="acceptRejectRule">The accept/reject rule to apply to child rows</param> /// <param name="deleteRule">The delete rule to apply to child rows</param> /// <param name="childColumnDefaultValue">Default value for child column. Needed when <paramref name="deleteRule"/> is Rule.SetDefault</param> protected void CreateParentChildRelation <T> ( string name, string parentColumnName, string childColumnName, AcceptRejectRule acceptRejectRule = AcceptRejectRule.None, Rule deleteRule = Rule.Cascade, object childColumnDefaultValue = null ) where T : TableBase { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } if (string.IsNullOrEmpty(parentColumnName)) { throw new ArgumentNullException(nameof(parentColumnName)); } if (string.IsNullOrEmpty(childColumnName)) { throw new ArgumentNullException(nameof(childColumnName)); } var child = Controller.GetTable <T>(); DataRelation r = new DataRelation(name, Columns[parentColumnName], child.Columns[childColumnName]); ChildRelations.Add(r); r.ChildKeyConstraint.AcceptRejectRule = acceptRejectRule; r.ChildKeyConstraint.DeleteRule = deleteRule; child.Columns[childColumnName].DefaultValue = childColumnDefaultValue; }
public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { this.constraintName = constraintName; this.parentColumnNames = parentColumnNames; this.childColumnNames = childColumnNames; this.parentTableName = parentTableName; this.acceptRejectRule = acceptRejectRule; this.deleteRule = deleteRule; this.updateRule = updateRule; }
public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { _constraintName = constraintName; _parentColumnNames = parentColumnNames; _childColumnNames = childColumnNames; _parentTableName = parentTableName; _acceptRejectRule = acceptRejectRule; _deleteRule = deleteRule; _updateRule = updateRule; }
internal static ArgumentOutOfRangeException InvalidAcceptRejectRule(AcceptRejectRule value) { #if DEBUG switch (value) { case AcceptRejectRule.None: case AcceptRejectRule.Cascade: Debug.Assert(false, "valid AcceptRejectRule " + value.ToString()); break; } #endif return(InvalidEnumerationValue(typeof(AcceptRejectRule), (int)value)); }
public static void AssertForeignKeyConstraint(string label, ForeignKeyConstraint fk, string name, AcceptRejectRule acceptRejectRule, Rule delRule, Rule updateRule, string[] colNames, string[] relColNames) { Assert.Equal(name, fk.ConstraintName); Assert.Equal(acceptRejectRule, fk.AcceptRejectRule); Assert.Equal(delRule, fk.DeleteRule); Assert.Equal(updateRule, fk.UpdateRule); for (int i = 0; i < colNames.Length; i++) { Assert.Equal(colNames[i], fk.Columns[i].ColumnName); } Assert.Equal(colNames.Length, fk.Columns.Length); for (int i = 0; i < relColNames.Length; i++) { Assert.Equal(relColNames[i], fk.RelatedColumns[i].ColumnName); } Assert.Equal(relColNames.Length, fk.RelatedColumns.Length); }
public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { InitInProgress = true; base.ConstraintName = constraintName; // "parentTableName" is searched in the "DataSet" to which the "DataTable" // from which AddRange() is called // childTable is the "DataTable" which calls AddRange() // Keep reference to parentTableName to resolve later _parentTableName = parentTableName; // Keep reference to parentColumnNames to resolve later _parentColumnNames = parentColumnNames; // Keep reference to childColumnNames to resolve later _childColumnNames = childColumnNames; _acceptRejectRule = acceptRejectRule; _deleteRule = deleteRule; _updateRule = updateRule; }
public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { this.constraintName = constraintName; this.parentColumnNames = parentColumnNames; this.childColumnNames = childColumnNames; this.parentTableName = parentTableName; this.acceptRejectRule = acceptRejectRule; this.deleteRule = deleteRule; this.updateRule = updateRule; // ForeignKeyConstraint(constraintName, parentTableName, null, parentColumnNames, childColumnNames,acceptRejectRule, deleteRule, updateRule) }
internal static string TranslateAcceptRejectRule( AcceptRejectRule rule ) { switch (rule) { case AcceptRejectRule.Cascade: return "Cascade"; case AcceptRejectRule.None: return "None"; default: return null; } }
public void AssertForeignKeyConstraint (string label, ForeignKeyConstraint fk, string name, AcceptRejectRule acceptRejectRule, Rule delRule, Rule updateRule, string [] colNames, string [] relColNames) { AssertEquals (label + ".name", name, fk.ConstraintName); AssertEquals (label + ".acceptRejectRule", acceptRejectRule, fk.AcceptRejectRule); AssertEquals (label + ".delRule", delRule, fk.DeleteRule); AssertEquals (label + ".updateRule", updateRule, fk.UpdateRule); for (int i = 0; i < colNames.Length; i++) AssertEquals (label + ".column_" + i, colNames [i], fk.Columns [i].ColumnName); AssertEquals (label + ".colCount", colNames.Length, fk.Columns.Length); for (int i = 0; i < relColNames.Length; i++) AssertEquals (label + ".relatedColumn_" + i, relColNames [i], fk.RelatedColumns [i].ColumnName); AssertEquals (label + ".relatedColCount", relColNames.Length, fk.RelatedColumns.Length); }
public ForeignKeyConstraint (string constraintName, string parentTableName, string parentTableNamespace, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { InitInProgress = true; base.ConstraintName = constraintName; // "parentTableName" is searched in the "DataSet" to which the "DataTable" // from which AddRange() is called // childTable is the "DataTable" which calls AddRange() // Keep reference to parentTableName to resolve later _parentTableName = parentTableName; _parentTableNamespace = parentTableNamespace; // Keep reference to parentColumnNames to resolve later _parentColumnNames = parentColumnNames; // Keep reference to childColumnNames to resolve later _childColumnNames = childColumnNames; _acceptRejectRule = acceptRejectRule; _deleteRule = deleteRule; _updateRule = updateRule; }
public void AssertForeignKeyConstraint(string label, ForeignKeyConstraint fk, string name, AcceptRejectRule acceptRejectRule, Rule delRule, Rule updateRule, string[] colNames, string[] relColNames) { Assert.Equal(name, fk.ConstraintName); Assert.Equal(acceptRejectRule, fk.AcceptRejectRule); Assert.Equal(delRule, fk.DeleteRule); Assert.Equal(updateRule, fk.UpdateRule); for (int i = 0; i < colNames.Length; i++) Assert.Equal(colNames[i], fk.Columns[i].ColumnName); Assert.Equal(colNames.Length, fk.Columns.Length); for (int i = 0; i < relColNames.Length; i++) Assert.Equal(relColNames[i], fk.RelatedColumns[i].ColumnName); Assert.Equal(relColNames.Length, fk.RelatedColumns.Length); }
internal static ArgumentOutOfRangeException InvalidAcceptRejectRule(AcceptRejectRule value) { return InvalidEnumerationValue(typeof(AcceptRejectRule), (int) value); }
public ForeignKeyConstraint (string constraintName, string parentTableName, string parentTableNamespace, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { throw new NotImplementedException (); }
public ForeignKeyConstraint(string constraintName, string parentTableName, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule) { int i; InitInProgress = true; base.ConstraintName = constraintName; // "parentTableName" is searched in the "DataSet" to which the "DataTable" // from which AddRange() is called // childTable is the "DataTable" which calls AddRange() // Keep reference to parentTableName to resolve later _parentTableName = parentTableName; // Keep a copy of parentColumnNames to resolve later _parentColumnNames = new string [parentColumnNames.Length]; for (i = 0; i < parentColumnNames.Length; i++) _parentColumnNames[i] = parentColumnNames[i]; // Keep a copy of childColumnNames to resolve later _childColumnNames = new string [childColumnNames.Length]; for (i = 0; i < childColumnNames.Length; i++) _childColumnNames[i] = childColumnNames[i]; _acceptRejectRule = acceptRejectRule; _deleteRule = deleteRule; _updateRule = updateRule; }