ConstraintCollection ConstraintCollection ConstraintCollection ConstraintCollection Class

Definizione

Rappresenta un insieme di vincoli per un oggetto DataTable.Represents a collection of constraints for a DataTable.

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

Esempi

Nel primo esempio viene creato DataTableun oggetto e viene DataColumn aggiunto un oggetto Unique (con la truerelativa proprietà impostata DataColumnCollectionsu) a.The first example creates a DataTable, and adds a DataColumn (with its Unique property set to true) to the DataColumnCollection. Nel secondo esempio viene creato DataSetun oggetto DataTable , due oggetti, quattro colonne e DataRelationun oggetto.The second example creates a DataSet, two DataTable objects, four columns, and a DataRelation. Viene quindi stampato il numero di vincoli per indicare che un ForeignKeyConstraint DataSet oggetto e UniqueConstraint un oggetto vengono creati DataRelation quando un oggetto viene aggiunto all' DataRelationCollectionoggetto.The count of constraints is then printed to show that a ForeignKeyConstraint and a UniqueConstraint are created when a DataRelation is added to the DataSet object's DataRelationCollection.

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

È ConstraintCollection possibile accedere all'oggetto DataTable.Constraints tramite la proprietà.The ConstraintCollection is accessed through the DataTable.Constraints property.

Può contenere UniqueConstraint sia oggetti sia perDataTable. ForeignKeyConstraint ConstraintCollectionThe ConstraintCollection can contain both UniqueConstraint and ForeignKeyConstraint objects for the DataTable. Un UniqueConstraint oggetto garantisce che i dati in una colonna specifica siano sempre univoci per mantenere l'integrità dei dati.A UniqueConstraint object makes sure that data in a specific column is always unique to preserve the data integrity. Determina ciò che si verificherà nelle tabelle correlate quando i dati DataTable in vengono aggiornati o eliminati. ForeignKeyConstraintThe ForeignKeyConstraint determines what will occur in related tables when data in the DataTable is either updated or deleted. Se, ad esempio, una riga viene eliminata ForeignKeyConstraint , determinerà se verranno eliminate anche le righe correlate (a cascata) o altre azioni.For example, if a row is deleted, the ForeignKeyConstraint will determine whether the related rows are also deleted (a cascade), or some other course of action.

Nota

Quando si aggiunge un DataRelation oggetto che crea una relazione tra due tabelle in DataSetun oggetto, ForeignKeyConstraint vengono creati UniqueConstraint automaticamente un oggetto e un oggetto.When you add a DataRelation that creates a relationship between two tables to a DataSet, both a ForeignKeyConstraint and a UniqueConstraint are created automatically. Viene applicato alla colonna chiave primaria nell'elemento padre DataTablee il vincolo viene ConstraintCollectionaggiunto alla tabella. UniqueConstraintThe UniqueConstraint is applied to the primary key column in the parent DataTable, and the constraint is added to that table's ConstraintCollection. Viene applicato alla colonna chiave primaria e alla colonna chiave esterna e il vincolo viene aggiunto all'oggetto della ConstraintCollectiontabella figlio. ForeignKeyConstraintThe ForeignKeyConstraint is applied to the primary key column and the foreign key column, and the constraint is added to the child table's ConstraintCollection.

Usa metodi di Addraccolta standard come, Cleare Remove. ConstraintCollectionThe ConstraintCollection uses standard collection methods such as Add, Clear, and Remove. Inoltre, il Contains metodo può essere utilizzato per cercare l'esistenza di un determinato vincolo nella raccolta.In addition, the Contains method can be used to look for the existence of a particular constraint in the collection.

Viene UniqueConstraint creato un DataTable oggetto quando DataColumn un oggetto Unique con la relativa true proprietà DataColumnCollectionimpostata su viene aggiunto all'oggetto.A UniqueConstraint is created when a DataColumn with its Unique property set to true is added to a DataTable object's DataColumnCollection.

Viene ForeignKeyConstraint creato un oggetto quando DataRelation DataSet vieneDataRelationCollectionaggiunto un oggetto a un oggetto.A ForeignKeyConstraint is created when a DataRelation is added to a DataSet object's DataRelationCollection.

Proprietà

Count Count Count Count

Ottiene il numero totale di elementi in un insieme.Gets the total number of elements in a collection.

(Inherited from InternalDataCollectionBase)
IsReadOnly IsReadOnly IsReadOnly IsReadOnly

Ottiene un valore che indica se InternalDataCollectionBase è di sola lettura.Gets a value that indicates whether the InternalDataCollectionBase is read-only.

(Inherited from InternalDataCollectionBase)
IsSynchronized IsSynchronized IsSynchronized IsSynchronized

Ottiene un valore che indica se InternalDataCollectionBase è sincronizzato.Gets a value that indicates whether the InternalDataCollectionBase is synchronized.

(Inherited from InternalDataCollectionBase)
Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Ottiene dall'insieme la classe Constraint in corrispondenza dell'indice specificato.Gets the Constraint from the collection at the specified index.

Item[String] Item[String] Item[String] Item[String]

Ottiene la classe Constraint dall'insieme con il nome specificato.Gets the Constraint from the collection with the specified name.

List List List List

Ottiene gli elementi dell'insieme sotto forma di elenco.Gets the items of the collection as a list.

(Inherited from InternalDataCollectionBase)
SyncRoot SyncRoot SyncRoot SyncRoot

Ottiene un oggetto che può essere utilizzato per sincronizzare l'insieme.Gets an object that can be used to synchronize the collection.

(Inherited from InternalDataCollectionBase)

Metodi

Add(Constraint) Add(Constraint) Add(Constraint) Add(Constraint)

Aggiunge l'oggetto Constraint specificato alla raccolta.Adds the specified Constraint object to the collection.

Add(String, DataColumn, Boolean) Add(String, DataColumn, Boolean) Add(String, DataColumn, Boolean) 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.Constructs a new UniqueConstraint with the specified name, DataColumn, and value that indicates whether the column is a primary key, and adds it to the collection.

Add(String, DataColumn, DataColumn) Add(String, DataColumn, DataColumn) Add(String, DataColumn, DataColumn) 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.Constructs a new ForeignKeyConstraint with the specified name, parent column, and child column, and adds the constraint to the collection.

Add(String, DataColumn[], Boolean) Add(String, DataColumn[], Boolean) Add(String, DataColumn[], Boolean) 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.Constructs a new UniqueConstraint with the specified name, array of DataColumn objects, and value that indicates whether the column is a primary key, and adds it to the collection.

Add(String, DataColumn[], DataColumn[]) Add(String, DataColumn[], DataColumn[]) Add(String, DataColumn[], DataColumn[]) 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.Constructs a new ForeignKeyConstraint, with the specified arrays of parent columns and child columns, and adds the constraint to the collection.

AddRange(Constraint[]) AddRange(Constraint[]) AddRange(Constraint[]) AddRange(Constraint[])

Copia gli elementi della matrice di oggetti ConstraintCollection specificata alla fine dell'insieme.Copies the elements of the specified ConstraintCollection array to the end of the collection.

CanRemove(Constraint) CanRemove(Constraint) CanRemove(Constraint) CanRemove(Constraint)

Indica se è possibile rimuovere un oggetto Constraint.Indicates whether a Constraint can be removed.

Clear() Clear() Clear() Clear()

Cancella dall'insieme qualunque oggetto Constraint.Clears the collection of any Constraint objects.

Contains(String) Contains(String) Contains(String) Contains(String)

Indica se l'oggetto Constraint specificato in base al nome è presente nell'insieme.Indicates whether the Constraint object specified by name exists in the collection.

CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32) CopyTo(Array, Int32)

Copia tutti gli elementi dell'insieme InternalDataCollectionBase corrente in un oggetto Array unidimensionale, partendo dall'indice di InternalDataCollectionBase specificato.Copies all the elements of the current InternalDataCollectionBase to a one-dimensional Array, starting at the specified InternalDataCollectionBase index.

(Inherited from InternalDataCollectionBase)
CopyTo(Constraint[], Int32) CopyTo(Constraint[], Int32) CopyTo(Constraint[], Int32) CopyTo(Constraint[], Int32)

Copia gli oggetti dell'insieme in un'istanza della classe Array unidimensionale, a partire dall'indice specificato.Copies the collection objects to a one-dimensional Array instance starting at the specified index.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Ottiene un oggetto IEnumerator per l'insieme.Gets an IEnumerator for the collection.

(Inherited from InternalDataCollectionBase)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
IndexOf(Constraint) IndexOf(Constraint) IndexOf(Constraint) IndexOf(Constraint)

Ottiene l'indice della classe Constraint specificata.Gets the index of the specified Constraint.

IndexOf(String) IndexOf(String) IndexOf(String) IndexOf(String)

Ottiene l'indice della classe Constraint specificata in base al nome.Gets the index of the Constraint specified by name.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
Remove(Constraint) Remove(Constraint) Remove(Constraint) Remove(Constraint)

Rimuove l'oggetto Constraint specificato dalla raccolta.Removes the specified Constraint from the collection.

Remove(String) Remove(String) Remove(String) Remove(String)

Rimuove dall'insieme l'oggetto Constraint specificato in base al nome.Removes the Constraint object specified by name from the collection.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

Rimuove dall'insieme l'oggetto Constraint in corrispondenza dell'indice specificato.Removes the Constraint object at the specified index from the collection.

ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Eventi

CollectionChanged CollectionChanged CollectionChanged CollectionChanged

Viene generato ogni volta che la classe ConstraintCollection viene modificata in seguito all'aggiunta o alla rimozione di oggetti Constraint.Occurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.

Metodi di estensione

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a

Thread safety

Questo tipo è sicuro per le operazioni di lettura multithread.This type is safe for multithreaded read operations. È necessario sincronizzare le operazioni di scrittura.You must synchronize any write operations.

Vedi anche