Condividi tramite


ForeignKeyConstraint Classe

Definizione

Rappresenta una restrizione di azione applicata su un insieme di colonne in una relazione chiave primaria/chiave esterna quando si aggiorna o si elimina un valore o una riga.

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
Ereditarietà
ForeignKeyConstraint
Attributi

Esempio

Nell'esempio seguente viene creato un ForeignKeyConstraintoggetto , vengono impostate alcune delle relative proprietà e viene aggiunto a un DataTable oggetto 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

Commenti

Un ForeignKeyConstraint oggetto limita l'azione eseguita quando un valore in una colonna (o colonne) viene eliminato o aggiornato. Tale vincolo deve essere usato con le colonne chiave primaria. In una relazione padre/figlio tra due tabelle, l'eliminazione di un valore dalla tabella padre può influire sulle righe figlio in uno dei modi seguenti.

  • Le righe figlio possono essere eliminate anche (un'azione a catena).

  • I valori nella colonna figlio (o colonne) possono essere impostati su valori Null.

  • I valori nella colonna figlio (o colonne) possono essere impostati sui valori predefiniti.

  • È possibile generare un'eccezione.

ForeignKeyConstraint gli oggetti sono contenuti in ConstraintCollection di un DataTableoggetto , a cui si accede tramite la Constraints proprietà .

I vincoli non vengono applicati a meno che la EnforceConstraints proprietà non sia impostata su true.

Viene AcceptRejectRule applicato ogni volta che viene richiamato il metodo di AcceptChanges un DataTable oggetto.

Costruttori

ForeignKeyConstraint(DataColumn, DataColumn)

Inizializza una nuova istanza della classe ForeignKeyConstraint con gli oggetti DataColumn padre e figlio specificati.

ForeignKeyConstraint(DataColumn[], DataColumn[])

Inizializza una nuova istanza della classe ForeignKeyConstraint con le matrici di oggetti DataColumn padre e figlio specificate.

ForeignKeyConstraint(String, DataColumn, DataColumn)

Inizializza una nuova istanza della classe ForeignKeyConstraint con il nome e gli oggetti DataColumn padre e figlio specificati.

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

Inizializza una nuova istanza della classe ForeignKeyConstraint con il nome e le matrici di oggetti DataColumn padre e figlio specificati.

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

Questo costruttore viene fornito per il supporto in fase di progettazione nell'ambiente Visual Studio. Gli oggetti ForeignKeyConstraint creati mediante questo costruttore deve essere aggiunto all'insieme utilizzando il metodo AddRange(Constraint[]). È necessario che le tabelle e le colonne con i nomi specificati siano disponibili nel momento in cui il metodo viene chiamato oppure, se il metodo BeginInit() viene chiamato prima di questo costruttore, che le tabelle e le colonne con i nomi specificati siano disponibili nel momento in cui viene chiamato il metodo EndInit().

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

Questo costruttore viene fornito per il supporto in fase di progettazione nell'ambiente Visual Studio. Gli oggetti ForeignKeyConstraint creati mediante questo costruttore deve essere aggiunto all'insieme utilizzando il metodo AddRange(Constraint[]). È necessario che le tabelle e le colonne con i nomi specificati siano disponibili nel momento in cui il metodo viene chiamato oppure, se il metodo BeginInit() viene chiamato prima di questo costruttore, che le tabelle e le colonne con i nomi specificati siano disponibili nel momento in cui viene chiamato il metodo EndInit().

Proprietà

_DataSet

Ottiene la classe DataSet cui il vincolo appartiene.

(Ereditato da Constraint)
AcceptRejectRule

Indica il tipo di operazione che dovrà essere eseguita in questo vincolo quando si chiama AcceptChanges().

Columns

Ottiene le colonne figlio di questo vincolo.

ConstraintName

Nome di un vincolo nell'insieme ConstraintCollection.

(Ereditato da Constraint)
DeleteRule

Ottiene o imposta l'azione che si verifica nel vincolo quando una riga viene eliminata.

ExtendedProperties

Ottiene l'insieme delle proprietà dei vincoli definiti dall'utente.

(Ereditato da Constraint)
RelatedColumns

Colonne padre di questo vincolo.

RelatedTable

Ottiene la tabella padre di questo vincolo.

Table

Ottiene la tabella figlio di questo vincolo.

UpdateRule

Ottiene o imposta l'azione che si verifica nel vincolo quando una riga viene aggiornata.

Metodi

CheckStateForProperty()

Ottiene la classe DataSet cui il vincolo appartiene.

(Ereditato da Constraint)
Equals(Object)

Ottiene un valore che indica se l'elemento ForeignKeyConstraint corrente è identico all'oggetto specificato.

GetHashCode()

Ottiene il codice hash di questa istanza dell'oggetto ForeignKeyConstraint.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
SetDataSet(DataSet)

Imposta la classe DataSet del vincolo.

(Ereditato da Constraint)
ToString()

Ottiene la proprietà ConstraintName, se presente, sotto forma di stringa.

(Ereditato da Constraint)

Si applica a

Thread safety

Questo tipo è sicuro per le operazioni di lettura multithreading. È necessario sincronizzare tutte le operazioni di scrittura.

Vedi anche