internal void CheckCascade(DataRow row, DataRowAction action)
{
if (!row.inCascade)
{
row.inCascade = true;
try
{
if (action == DataRowAction.Change)
{
if (row.HasKeyChanged(this.parentKey))
{
this.CascadeUpdate(row);
}
}
else if (action == DataRowAction.Delete)
{
this.CascadeDelete(row);
}
else if (action == DataRowAction.Commit)
{
this.CascadeCommit(row);
}
else if (action == DataRowAction.Rollback)
{
this.CascadeRollback(row);
}
}
finally
{
row.inCascade = false;
}
}
}