当前位置: 首页>>代码示例>>C#>>正文


C# ITransaction.CheckRemoveConstraintViolations方法代码示例

本文整理汇总了C#中ITransaction.CheckRemoveConstraintViolations方法的典型用法代码示例。如果您正苦于以下问题:C# ITransaction.CheckRemoveConstraintViolations方法的具体用法?C# ITransaction.CheckRemoveConstraintViolations怎么用?C# ITransaction.CheckRemoveConstraintViolations使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ITransaction的用法示例。


在下文中一共展示了ITransaction.CheckRemoveConstraintViolations方法的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;

                }
            }
        }
开发者ID:furesoft,项目名称:deveeldb,代码行数:45,代码来源:TransactionWork.cs


注:本文中的ITransaction.CheckRemoveConstraintViolations方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。