System.Data.ForeignKeyConstraint.CheckCascade C# (CSharp) Method

CheckCascade() private method

private CheckCascade ( DataRow row, DataRowAction action ) : void
row DataRow
action DataRowAction
return void
        internal void CheckCascade(DataRow row, DataRowAction action)
        {
            Debug.Assert(Table.DataSet != null, "ForeignKeyConstraint " + ConstraintName + " isn't part of a DataSet, so this check shouldn't be happening.");

            if (row._inCascade)
            {
                return;
            }

            row._inCascade = true;
            try
            {
                if (action == DataRowAction.Change)
                {
                    if (row.HasKeyChanged(_parentKey))
                    {
                        CascadeUpdate(row);
                    }
                }
                else if (action == DataRowAction.Delete)
                {
                    CascadeDelete(row);
                }
                else if (action == DataRowAction.Commit)
                {
                    CascadeCommit(row);
                }
                else if (action == DataRowAction.Rollback)
                {
                    CascadeRollback(row);
                }
                else if (action == DataRowAction.Add)
                {
                }
                else
                {
                    Debug.Assert(false, "attempt to cascade unknown action: " + action.ToString());
                }
            }
            finally
            {
                row._inCascade = false;
            }
        }