在 .NET Framework 应用程序中填充数据集时关闭约束

注意

数据集和相关类是 2000 年代初的旧 .NET Framework 技术,使应用程序能够在应用程序与数据库断开连接时处理内存中的数据。 它们对于使用户能够修改数据并持续更改回数据库的应用程序特别有用。 虽然数据集已被证明是一项非常成功的技术,但我们建议新的 .NET 应用程序使用 Entity Framework Core。 实体框架提供了一种更自然的方式来将表格数据作为对象模型,并且具有更简单的编程接口。

如果数据集包含约束(如外键约束),则它们可能会引发与针对数据集执行的操作的顺序相关的错误。 例如,在加载相关父记录之前加载子记录可能会违反约束并引发错误。 加载子记录后,约束会检查相关父记录并引发错误。

如果没有允许临时约束暂停的机制,则每次尝试将记录加载到子表中时都会引发错误。 暂停数据集中所有约束的另一种方式是使用 BeginEditEndEdit 属性。

注意

约束关闭时,不会引发验证事件(例如 ColumnChangingRowChanging)。

以编程方式暂停更新约束

  • 以下示例演示如何暂时关闭数据集中的约束检查:

    dataSet1.EnforceConstraints = false;
    // Perform some operations on the dataset
    dataSet1.EnforceConstraints = true;
    

使用数据集设计器暂停更新约束

  1. 在“数据集设计器”中打开数据集。 有关详细信息,请参阅演练:在数据集设计器中创建数据集

  2. 在“属性” 窗口中,将 EnforceConstraints 属性设置为 false