internal bool HasKeyChanged(DataKey key, DataRowVersion version1, DataRowVersion version2) { if (!HasVersion(version1) || !HasVersion(version2)) { return true; } return !key.RecordsEqual(GetRecordFromVersion(version1), GetRecordFromVersion(version2)); }
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; } } }