本文整理汇总了C#中ITransaction.CheckAddConstraintViolations方法的典型用法代码示例。如果您正苦于以下问题:C# ITransaction.CheckAddConstraintViolations方法的具体用法?C# ITransaction.CheckAddConstraintViolations怎么用?C# ITransaction.CheckAddConstraintViolations使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITransaction
的用法示例。
在下文中一共展示了ITransaction.CheckAddConstraintViolations方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckConstraintViolations
private void CheckConstraintViolations(ITransaction checkTransaction, CommitTableInfo[] normalizedChangedTables, ITable[] changedTableSource)
{
// Any tables that the constraints were altered for we need to check
// if any rows in the table violate the new constraints.
foreach (var tableId in ConstraintAlteredTables) {
// We need to check there are no constraint violations for all the
// rows in the table.
for (int n = 0; n < normalizedChangedTables.Length; ++n) {
CommitTableInfo tableInfo = normalizedChangedTables[n];
if (tableInfo.Master.TableId == tableId) {
checkTransaction.CheckAddConstraintViolations(changedTableSource[n], ConstraintDeferrability.InitiallyDeferred);
}
}
}
// For each changed table we must determine the rows that
// were deleted and perform the remove constraint checks on the
// deleted rows. Note that this happens after the records are
// removed from the index.
// For each changed table,
for (int i = 0; i < normalizedChangedTables.Length; ++i) {
CommitTableInfo tableInfo = normalizedChangedTables[i];
// Get the journal that details the change to the table.
TableEventRegistry changeJournal = tableInfo.Journal;
if (changeJournal != null) {
// Find the normalized deleted rows.
int[] normalizedRemovedRows = changeJournal.RemovedRows.ToArray();
// Check removing any of the data doesn't cause a constraint
// violation.
checkTransaction.CheckRemoveConstraintViolations(changedTableSource[i], normalizedRemovedRows, ConstraintDeferrability.InitiallyDeferred);
// Find the normalized added rows.
int[] normalizedAddedRows = changeJournal.AddedRows.ToArray();
// Check adding any of the data doesn't cause a constraint
// violation.
checkTransaction.CheckAddConstraintViolations(changedTableSource[i], normalizedAddedRows, ConstraintDeferrability.InitiallyDeferred);
// Set up the list of added and removed rows
tableInfo.NormalizedAddedRows = normalizedAddedRows;
tableInfo.NormalizedRemovedRows = normalizedRemovedRows;
}
}
}