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


ForeignKeyConstraint Класс

Определение

Представляет ограничение действия, которое применяется к набору столбцов в связи первичного ключа или внешнего ключа при удалении или обновлении строки.

public ref class ForeignKeyConstraint : System::Data::Constraint
public class ForeignKeyConstraint : System.Data.Constraint
[System.Serializable]
public class ForeignKeyConstraint : System.Data.Constraint
type ForeignKeyConstraint = class
    inherit Constraint
[<System.Serializable>]
type ForeignKeyConstraint = class
    inherit Constraint
Public Class ForeignKeyConstraint
Inherits Constraint
Наследование
ForeignKeyConstraint
Атрибуты

Примеры

В следующем примере создается ForeignKeyConstraint, задает некоторые его свойства и добавляет его в DataTable объект ConstraintCollection.

' 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

Комментарии

Ограничение ForeignKeyConstraint действия, выполняемого при удалении или обновлении значения в столбце (или столбцах). Такое ограничение предназначено для использования с первичными ключевыми столбцами. В связи "родительский или дочерний" между двумя таблицами удаление значения из родительской таблицы может повлиять на дочерние строки одним из следующих способов.

  • Дочерние строки также можно удалить (каскадное действие).

  • Значения в дочернем столбце (или столбцах) могут иметь значение NULL.

  • Значения в дочернем столбце (или столбцах) можно задать для значений по умолчанию.

  • Исключение можно создать.

ForeignKeyConstraint объекты содержатся в ConstraintCollection объекте DataTable, доступ к которому осуществляется через Constraints свойство.

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

Применяется AcceptRejectRule всякий раз, когда DataTable вызывается метод объекта AcceptChanges .

Конструкторы

Имя Описание
ForeignKeyConstraint(DataColumn, DataColumn)

Инициализирует новый экземпляр ForeignKeyConstraint класса с указанными родительскими и дочерними DataColumn объектами.

ForeignKeyConstraint(DataColumn[], DataColumn[])

Инициализирует новый экземпляр ForeignKeyConstraint класса с указанными массивами родительских и дочерних DataColumn объектов.

ForeignKeyConstraint(String, DataColumn, DataColumn)

Инициализирует новый экземпляр ForeignKeyConstraint класса с указанным именем, родительскими и дочерними DataColumn объектами.

ForeignKeyConstraint(String, DataColumn[], DataColumn[])

Инициализирует новый экземпляр ForeignKeyConstraint класса с указанным именем и массивами родительских и дочерних DataColumn объектов.

ForeignKeyConstraint(String, String, String, String[], String[], AcceptRejectRule, Rule, Rule)

Этот конструктор предоставляется для поддержки времени разработки в среде Visual Studio. ForeignKeyConstraint Объекты, созданные с помощью этого конструктора, необходимо добавить в коллекцию с помощью AddRange(Constraint[]). Таблицы и столбцы с указанными именами должны существовать во время вызова метода или если BeginInit() до вызова этого конструктора таблицы и столбцы с указанными именами должны существовать во время EndInit() вызова.

ForeignKeyConstraint(String, String, String[], String[], AcceptRejectRule, Rule, Rule)

Этот конструктор предоставляется для поддержки времени разработки в среде Visual Studio. ForeignKeyConstraint Объекты, созданные с помощью этого конструктора, необходимо добавить в коллекцию с помощью AddRange(Constraint[]). Таблицы и столбцы с указанными именами должны существовать во время вызова метода или если BeginInit() до вызова этого конструктора таблицы и столбцы с указанными именами должны существовать во время EndInit() вызова.

Свойства

Имя Описание
_DataSet

Возвращает значение DataSet , к которому относится это ограничение.

(Унаследовано от Constraint)
AcceptRejectRule

Указывает действие, которое должно выполняться по этому ограничению при AcceptChanges() вызове.

Columns

Возвращает дочерние столбцы этого ограничения.

ConstraintName

Имя ограничения в объекте ConstraintCollection.

(Унаследовано от Constraint)
DeleteRule

Возвращает или задает действие, возникающее в этом ограничении при удалении строки.

ExtendedProperties

Возвращает коллекцию определяемых пользователем свойств ограничений.

(Унаследовано от Constraint)
RelatedColumns

Родительские столбцы этого ограничения.

RelatedTable

Возвращает родительскую таблицу этого ограничения.

Table

Возвращает дочернюю таблицу этого ограничения.

UpdateRule

Возвращает или задает действие, которое возникает в этом ограничении при обновлении строки.

Методы

Имя Описание
CheckStateForProperty()

Возвращает значение DataSet , к которому относится это ограничение.

(Унаследовано от Constraint)
Equals(Object)

Возвращает значение, указывающее, идентичен ли текущий ForeignKeyConstraint объект указанному объекту.

GetHashCode()

Возвращает хэш-код этого экземпляра ForeignKeyConstraint объекта.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
SetDataSet(DataSet)

Задает ограничение DataSet.

(Унаследовано от Constraint)
ToString()

ConstraintNameВозвращает значение , если есть одно, в виде строки.

(Унаследовано от Constraint)

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

Потокобезопасность

Этот тип является безопасным для многопоточных операций чтения. Необходимо синхронизировать все операции записи.

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