ForeignKeyConstraint Classe

Definição

Representa uma restrição de ação imposta em um conjunto de colunas em uma relação de chave estrangeira/chave primária quando um valor ou uma linha é excluída ou atualizada.

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
Herança
ForeignKeyConstraint
Atributos

Exemplos

O exemplo a seguir cria um ForeignKeyConstraint, define algumas de suas propriedades e o adiciona a um DataTable objeto 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

Comentários

Um ForeignKeyConstraint restringe a ação executada quando um valor em uma coluna (ou colunas) é excluído ou atualizado. Essa restrição destina-se a ser usada com colunas de chave primária. Em uma relação pai/filho entre duas tabelas, excluir um valor da tabela pai pode afetar as linhas filho de uma das seguintes maneiras.

  • As linhas filho também podem ser excluídas (uma ação em cascata).

  • Os valores na coluna filho (ou colunas) podem ser definidos como valores nulos.

  • Os valores na coluna filho (ou colunas) podem ser definidos como valores padrão.

  • Uma exceção pode ser gerada.

ForeignKeyConstraint os objetos estão contidos no ConstraintCollection de um DataTable, que é acessado por meio da Constraints propriedade .

As restrições não são impostas, a menos que a EnforceConstraints propriedade esteja definida como true.

O AcceptRejectRule é imposto sempre que o método de AcceptChanges um DataTable objeto é invocado.

Construtores

ForeignKeyConstraint(DataColumn, DataColumn)

Inicializa uma nova instância da classe ForeignKeyConstraint com os objetos DataColumn pai e filho especificados.

ForeignKeyConstraint(DataColumn[], DataColumn[])

Inicializa uma nova instância da classe ForeignKeyConstraint com as matrizes especificadas de objetos DataColumn pai e filho.

ForeignKeyConstraint(String, DataColumn, DataColumn)

Inicializa uma nova instância da classe ForeignKeyConstraint com o nome especificado e objetos DataColumn pai e filho.

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

Inicializa uma nova instância da classe ForeignKeyConstraint com o nome especificado, bem como matrizes de objetos DataColumn pai e filho.

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

Este construtor é fornecido para suporte de tempo de design no ambiente do Visual Studio. Os objetos ForeignKeyConstraint criados usando este construtor, em seguida, devem ser adicionados à coleção via AddRange(Constraint[]). Tabelas e colunas com os nomes especificados devem existir no momento em que o método é chamado ou se BeginInit() foi chamado antes de se chamar este construtor, as tabelas e colunas com os nomes especificados devem existir no momento em que EndInit() é chamado.

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

Este construtor é fornecido para suporte de tempo de design no ambiente do Visual Studio. Os objetos ForeignKeyConstraint criados usando este construtor, em seguida, devem ser adicionados à coleção via AddRange(Constraint[]). Tabelas e colunas com os nomes especificados devem existir no momento em que o método é chamado ou se BeginInit() foi chamado antes de se chamar este construtor, as tabelas e colunas com os nomes especificados devem existir no momento em que EndInit() é chamado.

Propriedades

_DataSet

Obtém o DataSet ao qual esta restrição pertence.

(Herdado de Constraint)
AcceptRejectRule

Indica a ação que deve ocorrer por essa restrição quando AcceptChanges() é invocado.

Columns

Obtém as colunas filho dessa restrição.

ConstraintName

O nome de uma restrição no ConstraintCollection.

(Herdado de Constraint)
DeleteRule

Obtém ou define a ação que ocorre nessa restrição quando uma linha é excluída.

ExtendedProperties

Obtém a coleção de propriedades de restrição definidas pelo usuário.

(Herdado de Constraint)
RelatedColumns

As colunas pai dessa restrição.

RelatedTable

Obtém a tabela pai dessa restrição.

Table

Obtém a tabela filho dessa restrição.

UpdateRule

Obtém ou define a ação que ocorre nessa restrição quando uma linha é atualizada.

Métodos

CheckStateForProperty()

Obtém o DataSet ao qual esta restrição pertence.

(Herdado de Constraint)
Equals(Object)

Obtém um valor que indica se o ForeignKeyConstraint atual é idêntico ao objeto especificado.

GetHashCode()

Obtém o código hash desta instância do objeto ForeignKeyConstraint.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
SetDataSet(DataSet)

Define o DataSet da restrição.

(Herdado de Constraint)
ToString()

Obtém o ConstraintName, se houver um, como uma cadeia de caracteres.

(Herdado de Constraint)

Aplica-se a

Acesso thread-safe

Este tipo é seguro para operações de leitura e multithread. Você deve sincronizar todas as operações de gravação.

Confira também