ConstraintCollection Classe

Definizione

Rappresenta un insieme di vincoli per un oggetto DataTable.

public ref class ConstraintCollection sealed : System::Data::InternalDataCollectionBase
public ref class ConstraintCollection : System::Data::InternalDataCollectionBase
public sealed class ConstraintCollection : System.Data.InternalDataCollectionBase
[System.Serializable]
public class ConstraintCollection : System.Data.InternalDataCollectionBase
type ConstraintCollection = class
    inherit InternalDataCollectionBase
[<System.Serializable>]
type ConstraintCollection = class
    inherit InternalDataCollectionBase
Public NotInheritable Class ConstraintCollection
Inherits InternalDataCollectionBase
Public Class ConstraintCollection
Inherits InternalDataCollectionBase
Ereditarietà
ConstraintCollection
Attributi

Esempio

Il primo esempio crea un DataTableoggetto e aggiunge un DataColumn oggetto (con la relativa Unique proprietà impostata su ) all'oggetto trueDataColumnCollection. Il secondo esempio crea un DataSetoggetto , due DataTable oggetti, quattro colonne e un DataRelationoggetto . Il conteggio dei vincoli viene quindi stampato per mostrare che viene creato un ForeignKeyConstraint oggetto e quando viene aggiunto un UniqueConstraintDataRelation oggetto all'oggetto DataRelationCollectionDataSet .

private void MakeTableWithUniqueConstraint()
{
    DataTable table = new DataTable("table");
    DataColumn column = new DataColumn("UniqueColumn");
    column.Unique=true;
    table.Columns.Add(column);

    // Print count, name, and type.
    Console.WriteLine("Constraints.Count "
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[0].ConstraintName);
    Console.WriteLine(table.Constraints[0].GetType() );

    // Add a second unique column.
    column = new DataColumn("UniqueColumn2");
    column.Unique=true;
    table.Columns.Add(column);

    // Print info again.
    Console.WriteLine("Constraints.Count "
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[1].ConstraintName);
    Console.WriteLine(table.Constraints[1].GetType() );
}

private void MakeTableWithForeignConstraint()
{
    // Create a DataSet.
    DataSet dataSet = new DataSet("dataSet");

    // Make two tables.
    DataTable customersTable= new DataTable("Customers");
    DataTable ordersTable = new DataTable("Orders");

    // Create four columns, two for each table.
    DataColumn name = new DataColumn("Name");
    DataColumn id = new DataColumn("ID");
    DataColumn orderId = new DataColumn("OrderID");
    DataColumn cDate = new DataColumn("OrderDate");

    // Add columns to tables.
    customersTable.Columns.Add(name);
    customersTable.Columns.Add(id);
    ordersTable.Columns.Add(orderId);
    ordersTable.Columns.Add(cDate);

    // Add tables to the DataSet.
    dataSet.Tables.Add(customersTable);
    dataSet.Tables.Add(ordersTable);

    // Create a DataRelation for two of the columns.
    DataRelation myRelation = new
        DataRelation("CustomersOrders",id,orderId,true);
    dataSet.Relations.Add(myRelation);

    // Print TableName, Constraints.Count,
    // ConstraintName and Type.
    foreach(DataTable t in dataSet.Tables)
    {
        Console.WriteLine(t.TableName);
        Console.WriteLine("Constraints.Count "
            + t.Constraints.Count);
        Console.WriteLine("ParentRelations.Count "
            + t.ParentRelations.Count);
        Console.WriteLine("ChildRelations.Count "
            + t.ChildRelations.Count);
        foreach(Constraint cstrnt in t.Constraints)
        {
            Console.WriteLine(cstrnt.ConstraintName);
            Console.WriteLine(cstrnt.GetType());
        }
    }
}
Private Sub MakeTableWithUniqueConstraint()

    Dim table As New DataTable("table")
    Dim column As New DataColumn("UniqueColumn")
    column.Unique = True
    table.Columns.Add(column)

    ' Print count, name, and type.
    Console.WriteLine("Constraints.Count " _
       + table.Constraints.Count.ToString())
    Console.WriteLine(table.Constraints(0).ConstraintName)
    Console.WriteLine( _
        table.Constraints(0).GetType().ToString())

    ' Add a second unique column.
    column = New DataColumn("UniqueColumn2")
    column.Unique = True
    table.Columns.Add(column)

    ' Print info again.
    Console.WriteLine("Constraints.Count " _
       + table.Constraints.Count.ToString())
    Console.WriteLine(table.Constraints(1).ConstraintName)
    Console.WriteLine( _
        table.Constraints(1).GetType().ToString())
End Sub

Private Sub MakeTableWithForeignConstraint()

    ' Create a DataSet.
    Dim dataSet As New DataSet("dataSet")

    ' Make two tables.
    Dim customersTable As New DataTable("Customers")
    Dim ordersTable As New DataTable("Orders")

    ' Create four columns, two for each table.
    Dim name As New DataColumn("Name")
    Dim id As New DataColumn("ID")
    Dim orderId As New DataColumn("OrderID")
    Dim orderDate As New DataColumn("OrderDate")
    
    ' Add columns to tables.
    customersTable.Columns.Add(name)
    customersTable.Columns.Add(id)
    ordersTable.Columns.Add(orderId)
    ordersTable.Columns.Add(orderDate)
    
    ' Add tables to the DataSet.
    dataSet.Tables.Add(customersTable)
    dataSet.Tables.Add(ordersTable)

    ' Create a DataRelation for two of the columns.
    Dim myRelation As New DataRelation _
       ("CustomersOrders", id, orderId, True)
    dataSet.Relations.Add(myRelation)

    ' Print TableName, Constraints.Count, 
    ' ConstraintName and Type.
    Dim t As DataTable
    For Each t In  dataSet.Tables
        Console.WriteLine(t.TableName)
        Console.WriteLine("Constraints.Count " _
           + t.Constraints.Count.ToString())
        Console.WriteLine("ParentRelations.Count " _
           + t.ParentRelations.Count.ToString())
        Console.WriteLine("ChildRelations.Count " _
           + t.ChildRelations.Count.ToString())
        Dim cstrnt As Constraint
        For Each cstrnt In  t.Constraints
            Console.WriteLine(cstrnt.ConstraintName)
            Console.WriteLine(cstrnt.GetType())
        Next cstrnt
    Next t
End Sub

Commenti

Viene eseguito l'accesso ConstraintCollection tramite la DataTable.Constraints proprietà .

Può ConstraintCollection contenere entrambi UniqueConstraint gli oggetti e ForeignKeyConstraint per .DataTable Un UniqueConstraint oggetto assicura che i dati in una colonna specifica siano sempre univoci per mantenere l'integrità dei dati. Determina ForeignKeyConstraint cosa si verificherà nelle tabelle correlate quando i dati nell'oggetto DataTable vengono aggiornati o eliminati. Ad esempio, se viene eliminata una riga, l'oggetto ForeignKeyConstraint determina se le righe correlate vengono eliminate anche (a cascata) o un altro corso di azione.

Nota

Quando si aggiunge un oggetto DataRelation che crea una relazione tra due tabelle a un DataSetoggetto , viene creato automaticamente un oggetto e ForeignKeyConstraint .UniqueConstraint L'oggetto UniqueConstraint viene applicato alla colonna chiave primaria nell'elemento ConstraintCollectionpadre DataTablee il vincolo viene aggiunto a tale tabella. L'oggetto ForeignKeyConstraint viene applicato alla colonna chiave primaria e alla colonna chiave esterna e il vincolo viene aggiunto all'oggetto della ConstraintCollectiontabella figlio.

Usa ConstraintCollection metodi di raccolta standard, Addad esempio , Cleare Remove. Inoltre, il Contains metodo può essere usato per cercare l'esistenza di un vincolo specifico nell'insieme.

Viene UniqueConstraint creato quando un oggetto DataColumn con la relativa Unique proprietà impostata su true viene aggiunto a un DataTable oggetto DataColumnCollection.

Viene ForeignKeyConstraint creato quando un DataRelation oggetto viene aggiunto a .DataSetDataRelationCollection

Proprietà

Count

Ottiene il numero totale di elementi in un insieme.

(Ereditato da InternalDataCollectionBase)
IsReadOnly

Ottiene un valore che indica se InternalDataCollectionBase è di sola lettura.

(Ereditato da InternalDataCollectionBase)
IsSynchronized

Ottiene un valore che indica se InternalDataCollectionBase è sincronizzato.

(Ereditato da InternalDataCollectionBase)
Item[Int32]

Ottiene dall'insieme la classe Constraint in corrispondenza dell'indice specificato.

Item[String]

Ottiene la classe Constraint dall'insieme con il nome specificato.

List

Ottiene gli elementi dell'insieme sotto forma di elenco.

List

Ottiene gli elementi dell'insieme sotto forma di elenco.

(Ereditato da InternalDataCollectionBase)
SyncRoot

Ottiene un oggetto che può essere utilizzato per sincronizzare l'insieme.

(Ereditato da InternalDataCollectionBase)

Metodi

Add(Constraint)

Aggiunge l'oggetto Constraint specificato alla raccolta.

Add(String, DataColumn, Boolean)

Costruisce una nuova classe UniqueConstraint con il nome specificato, la classe DataColumn e un valore che indica se la colonna è una chiave primaria, eseguendone l'aggiunta all'insieme.

Add(String, DataColumn, DataColumn)

Crea un nuovo oggetto ForeignKeyConstraint con il nome specificato, la colonna padre e la colonna figlio e aggiunge il vincolo all'insieme.

Add(String, DataColumn[], Boolean)

Costruisce una nuova classe UniqueConstraint con nome, matrice di oggetti DataColumn e valore specificati, che indica se la colonna è una chiave primaria, e ne esegue l'aggiunta all'insieme.

Add(String, DataColumn[], DataColumn[])

Crea un nuovo oggetto ForeignKeyConstraint con le matrici specificate di colonne padre e colonne figlio e aggiunge il vincolo all'insieme.

AddRange(Constraint[])

Copia gli elementi della matrice di oggetti ConstraintCollection specificata alla fine dell'insieme.

CanRemove(Constraint)

Indica se è possibile rimuovere un oggetto Constraint.

Clear()

Cancella dall'insieme qualunque oggetto Constraint.

Contains(String)

Indica se l'oggetto Constraint specificato in base al nome è presente nell'insieme.

CopyTo(Array, Int32)

Copia tutti gli elementi dell'insieme InternalDataCollectionBase corrente in un oggetto Array unidimensionale, partendo dall'indice di InternalDataCollectionBase specificato.

(Ereditato da InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Copia gli oggetti dell'insieme in un'istanza della classe Array unidimensionale, a partire dall'indice specificato.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetEnumerator()

Ottiene un oggetto IEnumerator per l'insieme.

(Ereditato da InternalDataCollectionBase)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IndexOf(Constraint)

Ottiene l'indice della classe Constraint specificata.

IndexOf(String)

Ottiene l'indice della classe Constraint specificata in base al nome.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnCollectionChanged(CollectionChangeEventArgs)

Genera l'evento CollectionChanged.

Remove(Constraint)

Rimuove l'oggetto Constraint specificato dalla raccolta.

Remove(String)

Rimuove dall'insieme l'oggetto Constraint specificato in base al nome.

RemoveAt(Int32)

Rimuove l'oggetto Constraint in corrispondenza dell'indice specificato dalla raccolta.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Eventi

CollectionChanged

Viene generato ogni volta che la classe ConstraintCollection viene modificata in seguito all'aggiunta o alla rimozione di oggetti Constraint.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a

Thread safety

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

Vedi anche