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;
}
}