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

注释

此类 DataSet 和相关类是 2000 年代初的旧版 .NET Framework 技术,使应用程序能够在应用与数据库断开连接时处理内存中的数据。 这些技术对于使用户能够修改数据并将更改保留回数据库的应用特别有用。 尽管数据集是经过证实的成功技术,但新 .NET 应用程序的建议方法是使用 Entity Framework Core。 Entity Framework 提供了一种更自然的方式来将表格数据用作对象模型,并且具有更简单的编程接口。

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

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

注释

当关闭约束时,不会引发验证事件(例如 ColumnChanging ,和 RowChanging)。

以编程方式暂停更新约束

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

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

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

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

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