コード例 #1
0
        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;
        }
コード例 #2
0
        /// <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;
        }
コード例 #3
0
 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;
 }
コード例 #4
0
 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;
 }
コード例 #5
0
ファイル: ForeignKeyConstraint.cs プロジェクト: dotnet/corefx
 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;
 }
コード例 #6
0
ファイル: AdapterUtil.cs プロジェクト: berkaroad/dotnetcorefx
        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));
        }
コード例 #7
0
 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);
 }
コード例 #8
0
        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;
        }
コード例 #9
0
        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)
        }
コード例 #10
0
 internal static string TranslateAcceptRejectRule( AcceptRejectRule rule ) {
     switch (rule) {
         case AcceptRejectRule.Cascade:  return "Cascade";
         case AcceptRejectRule.None:     return "None";
         default:                        return null;
     }
 }
コード例 #11
0
		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);
		}
コード例 #12
0
		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;
		}
コード例 #13
0
ファイル: DataSetAssertion.cs プロジェクト: dotnet/corefx
 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);
 }
コード例 #14
0
 internal static ArgumentOutOfRangeException InvalidAcceptRejectRule(AcceptRejectRule value)
 {
     return InvalidEnumerationValue(typeof(AcceptRejectRule), (int) value);
 }
コード例 #15
0
		public ForeignKeyConstraint (string constraintName, string parentTableName, string parentTableNamespace, string[] parentColumnNames, string[] childColumnNames, AcceptRejectRule acceptRejectRule, Rule deleteRule, Rule updateRule)
		{
			throw new NotImplementedException ();
		}
コード例 #16
0
ファイル: ForeignKeyConstraint.cs プロジェクト: nlhepler/mono
		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;
		}