ConstraintCollection Classe

Definição

Representa uma coleção de restrições para um 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
Herança
ConstraintCollection
Atributos

Exemplos

O primeiro exemplo cria um DataTablee adiciona um DataColumn (com sua Unique propriedade definida como true) ao DataColumnCollection.The first example creates a DataTable, and adds a DataColumn (with its Unique property set to true) to the DataColumnCollection. O segundo exemplo cria um DataSet, dois DataTable objetos, quatro colunas e um DataRelation.The second example creates a DataSet, two DataTable objects, four columns, and a DataRelation. A contagem de restrições é impressa ForeignKeyConstraint para mostrar que um e um UniqueConstraint são criados quando DataSet um DataRelation é adicionado ao objeto DataRelationCollection.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

Comentários

O ConstraintCollection é acessado DataTable.Constraints por meio da propriedade.The ConstraintCollection is accessed through the DataTable.Constraints property.

O ConstraintCollection pode conter ambos UniqueConstraint os ForeignKeyConstraint objetos e para DataTable.The ConstraintCollection can contain both UniqueConstraint and ForeignKeyConstraint objects for the DataTable. Um UniqueConstraint objeto garante que os dados em uma coluna específica sejam sempre exclusivos para preservar a integridade dos dados.A UniqueConstraint object makes sure that data in a specific column is always unique to preserve the data integrity. O ForeignKeyConstraint determina o que ocorrerá em tabelas relacionadas quando os DataTable dados no são atualizados ou excluídos.The ForeignKeyConstraint determines what will occur in related tables when data in the DataTable is either updated or deleted. Por exemplo, se uma linha for excluída, ForeignKeyConstraint o determinará se as linhas relacionadas também serão excluídas (uma cascata) ou algum outro curso de ação.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.

Observação

Quando você adiciona um DataRelation que cria uma relação entre duas tabelas DataSeta UniqueConstraint , ForeignKeyConstraint a e a são criadas automaticamente.When you add a DataRelation that creates a relationship between two tables to a DataSet, both a ForeignKeyConstraint and a UniqueConstraint are created automatically. O UniqueConstraint é aplicado à coluna de chave primária no pai DataTablee a restrição é ConstraintCollectionadicionada a essa tabela.The UniqueConstraint is applied to the primary key column in the parent DataTable, and the constraint is added to that table's ConstraintCollection. O ForeignKeyConstraint é aplicado à coluna de chave primária e à coluna de chave estrangeira e a restrição é adicionada à ConstraintCollectiontabela filho.The ForeignKeyConstraint is applied to the primary key column and the foreign key column, and the constraint is added to the child table's ConstraintCollection.

O ConstraintCollection usa métodos Addde coleta padrão, como Clear, e Remove.The ConstraintCollection uses standard collection methods such as Add, Clear, and Remove. Além disso, o Contains método pode ser usado para procurar a existência de uma determinada restrição na coleção.In addition, the Contains method can be used to look for the existence of a particular constraint in the collection.

Um UniqueConstraint é criado quando um DataColumn com sua Unique propriedade true definidacomoDataTable é adicionado a um objeto. DataColumnCollectionA UniqueConstraint is created when a DataColumn with its Unique property set to true is added to a DataTable object's DataColumnCollection.

Um ForeignKeyConstraint é criado quando um DataRelation DataSet éDataRelationCollectionadicionado a um objeto.A ForeignKeyConstraint is created when a DataRelation is added to a DataSet object's DataRelationCollection.

Propriedades

Count

Obtém o número total de elementos em uma coleção.Gets the total number of elements in a collection.

(Herdado de InternalDataCollectionBase)
IsReadOnly

Obtém um valor que indica se o InternalDataCollectionBase é somente leitura.Gets a value that indicates whether the InternalDataCollectionBase is read-only.

(Herdado de InternalDataCollectionBase)
IsSynchronized

Obtém um valor que indica se o InternalDataCollectionBase é sincronizado.Gets a value that indicates whether the InternalDataCollectionBase is synchronized.

(Herdado de InternalDataCollectionBase)
Item[Int32]

Obtém o Constraint da coleção no índice especificado.Gets the Constraint from the collection at the specified index.

Item[String]

Obtém o Constraint da coleção com o nome especificado.Gets the Constraint from the collection with the specified name.

List

Obtém os itens da coleção como uma lista.Gets the items of the collection as a list.

(Herdado de InternalDataCollectionBase)
SyncRoot

Obtém um objeto que pode ser usado para sincronizar a coleção.Gets an object that can be used to synchronize the collection.

(Herdado de InternalDataCollectionBase)

Métodos

Add(Constraint)

Adiciona o objeto Constraint especificado à coleção.Adds the specified Constraint object to the collection.

Add(String, DataColumn, Boolean)

Constrói um novo UniqueConstraint com o nome especificado, DataColumn e o valor que indica se a coluna é uma chave primária e o adiciona à coleção.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)

Constrói um novo ForeignKeyConstraint com o nome, coluna pai e coluna filha especificados e adiciona a restrição à coleção.Constructs a new ForeignKeyConstraint with the specified name, parent column, and child column, and adds the constraint to the collection.

Add(String, DataColumn[], Boolean)

Constrói um novo UniqueConstraint com o nome especificado, uma matriz de objetos DataColumn e o valor que indica se a coluna é uma chave primária e o adiciona à coleção.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[])

Constrói um novo ForeignKeyConstraint, com as matrizes especificadas de colunas pai e colunas filha e adiciona a restrição à coleção.Constructs a new ForeignKeyConstraint, with the specified arrays of parent columns and child columns, and adds the constraint to the collection.

AddRange(Constraint[])

Copia os elementos da matriz ConstraintCollection especificada para o fim da coleção.Copies the elements of the specified ConstraintCollection array to the end of the collection.

CanRemove(Constraint)

Indica se um Constraint pode ser removido.Indicates whether a Constraint can be removed.

Clear()

Limpa a coleção de todos os objetos Constraint.Clears the collection of any Constraint objects.

Contains(String)

Indica se o objeto Constraint especificado pelo nome existe na coleção.Indicates whether the Constraint object specified by name exists in the collection.

CopyTo(Array, Int32)

Copia todos os elementos do InternalDataCollectionBase atual para um Array unidimensional, começando no índice InternalDataCollectionBase especificado.Copies all the elements of the current InternalDataCollectionBase to a one-dimensional Array, starting at the specified InternalDataCollectionBase index.

(Herdado de InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Copia os objetos de coleção para uma instância Array unidimensional começando no índice especificado.Copies the collection objects to a one-dimensional Array instance starting at the specified index.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetEnumerator()

Obtém um IEnumerator para a coleção.Gets an IEnumerator for the collection.

(Herdado de InternalDataCollectionBase)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
IndexOf(Constraint)

Obtém o índice do Constraint especificado.Gets the index of the specified Constraint.

IndexOf(String)

Obtém o índice do Constraint especificado por nome.Gets the index of the Constraint specified by name.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
Remove(Constraint)

Remove o Constraint especificado da coleção.Removes the specified Constraint from the collection.

Remove(String)

Remove o objeto Constraint especificado por nome da coleção.Removes the Constraint object specified by name from the collection.

RemoveAt(Int32)

Remove o objeto Constraint no índice especificado da coleção.Removes the Constraint object at the specified index from the collection.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Eventos

CollectionChanged

Ocorre sempre que o ConstraintCollection é alterado devido objetos Constraint que sendo adicionados ou removidos.Occurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.Converts an IEnumerable to an IQueryable.

Aplica-se a

Acesso thread-safe

Este tipo é seguro para operações de leitura e multithread.This type is safe for multithreaded read operations. Você deve sincronizar todas as operações de gravação.You must synchronize any write operations.

Veja também