Прочитать на английском

Поделиться через


Rule Перечисление

Определение

Указывает действие, которое должно быть выполнено для обеспечения ограничения ForeignKeyConstraint.

public enum Rule
Наследование

Поля

Cascade 1

Удалить или обновить связанные строки. Это значение по умолчанию.

None 0

К связанным строкам действия не применялись.

SetDefault 3

Задайте связанным строкам значения, содержащиеся в свойстве DefaultValue.

SetNull 2

Задайте связанным строкам значение DBNull.

Примеры

' The next line goes into the Declarations section of the module:
' SuppliersProducts is a class derived from DataSet.
Private suppliersProducts As SuppliersProducts

Private Sub CreateConstraint()
    ' Declare parent column and child column variables.
    Dim parentColumn As DataColumn
    Dim childColumn As DataColumn
    Dim fkeyConstraint As ForeignKeyConstraint

    ' Set parent and child column variables.
    parentColumn = suppliersProducts.Tables("Suppliers").Columns("SupplierID")
    childColumn = suppliersProducts.Tables("Products").Columns("SupplierID")
    fkeyConstraint = New ForeignKeyConstraint( _
        "SupplierFKConstraint", parentColumn, childColumn)

    ' Set null values when a value is deleted.
    fkeyConstraint.DeleteRule = Rule.SetNull
    fkeyConstraint.UpdateRule = Rule.Cascade
    fkeyConstraint.AcceptRejectRule = AcceptRejectRule.Cascade

    ' Add the constraint, and set EnforceConstraints to true.
    suppliersProducts.Tables("Products").Constraints.Add(fkeyConstraint)
    suppliersProducts.EnforceConstraints = True
End Sub

Комментарии

Значениям присваиваются UpdateRule свойства и DeleteRule объекта , найденного ForeignKeyConstraint в объекте DataTableConstraintCollection.Rule

Значения Rule определяют действие, которое происходит при удалении или обновлении значения в столбце. Из двух вариантов удаление значения является более важным и требующим внимания при установке правила.

В случае удаления значения указывает, Cascade что также удаляются все строки, содержащие это значение. SetNull указывает, что для всех дочерних столбцов заданы значения NULL. SetDefault указывает, что для всех дочерних столбцов должно быть задано значение по умолчанию для столбца. None указывает, что действие не будет выполняться, но создаются исключения.

В случае обновления значения указывает, Cascade что все дочерние столбцы также обновляются новым значением. SetNull указывает, что для всех дочерних столбцов должны быть заданы значения NULL. SetDefault указывает, что для всех значений дочерних столбцов задано значение по умолчанию. None указывает, что никаких действий не предпринимается, но создаются исключения.

Ограничения для DataSet не применяются, если EnforceConstraints свойство не имеет значения true.

При вызове AcceptChanges метода далее определяется, AcceptRejectRule какое действие выполняется.

Применяется к

Продукт Версии
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

См. также раздел