Compartilhar via


ConstraintCollection Classe

Definição

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

Exemplos

O primeiro exemplo cria um DataTablee adiciona um DataColumn (com sua Unique propriedade definida truecomo ) ao DataColumnCollection. O segundo exemplo cria um DataSet, dois DataTable objetos, quatro colunas e um DataRelation. A contagem de restrições é então impressa para mostrar que um ForeignKeyConstraint e um UniqueConstraint são criados quando um DataRelation é adicionado ao DataSet do DataRelationCollectionobjeto .

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 por meio da DataTable.Constraints propriedade .

O ConstraintCollection pode conter objetos UniqueConstraint e ForeignKeyConstraint para o DataTable. Um UniqueConstraint objeto garante que os dados em uma coluna específica sejam sempre exclusivos para preservar a integridade dos dados. O ForeignKeyConstraint determina o que ocorrerá em tabelas relacionadas quando os DataTable dados no forem atualizados ou excluídos. Por exemplo, se uma linha for excluída, o ForeignKeyConstraint determinará se as linhas relacionadas também serão excluídas (uma cascata) ou algum outro curso de ação.

Observação

Quando você adiciona um DataRelation que cria uma relação entre duas tabelas a um DataSet, um ForeignKeyConstraint e um UniqueConstraint são criados automaticamente. O UniqueConstraint é aplicado à coluna de chave primária no pai DataTablee a restrição é adicionada a essa tabela.ConstraintCollection O ForeignKeyConstraint é aplicado à coluna de chave primária e à coluna de chave estrangeira, e a restrição é adicionada ao da ConstraintCollectiontabela filho.

O ConstraintCollection usa métodos de coleção padrão, como Add, Cleare Remove. Além disso, o Contains método pode ser usado para procurar a existência de uma restrição específica na coleção.

Um UniqueConstraint é criado quando um DataColumn com sua Unique propriedade definida como true é adicionado ao de DataColumnCollectionum DataTable objeto .

Um ForeignKeyConstraint é criado quando um DataRelation é adicionado ao de DataRelationCollectionum DataSet objeto .

Propriedades

Count

Obtém o número total de elementos em uma coleção.

(Herdado de InternalDataCollectionBase)
IsReadOnly

Obtém um valor que indica se o InternalDataCollectionBase é somente leitura.

(Herdado de InternalDataCollectionBase)
IsSynchronized

Obtém um valor que indica se o InternalDataCollectionBase é sincronizado.

(Herdado de InternalDataCollectionBase)
Item[Int32]

Obtém o Constraint da coleção no índice especificado.

Item[String]

Obtém o Constraint da coleção com o nome especificado.

List

Obtém os itens da coleção como uma lista.

List

Obtém os itens da coleção como uma lista.

(Herdado de InternalDataCollectionBase)
SyncRoot

Obtém um objeto que pode ser usado para sincronizar a coleção.

(Herdado de InternalDataCollectionBase)

Métodos

Add(Constraint)

Adiciona o objeto Constraint especificado à coleção.

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.

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.

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.

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.

AddRange(Constraint[])

Copia os elementos da matriz ConstraintCollection especificada para o fim da coleção.

CanRemove(Constraint)

Indica se um Constraint pode ser removido.

Clear()

Limpa a coleção de todos os objetos Constraint.

Contains(String)

Indica se o objeto Constraint especificado pelo nome existe na coleção.

CopyTo(Array, Int32)

Copia todos os elementos do InternalDataCollectionBase atual para um Array unidimensional, começando no índice InternalDataCollectionBase especificado.

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

Copia os objetos de coleção para uma instância Array unidimensional começando no índice especificado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Obtém um IEnumerator para a coleção.

(Herdado de InternalDataCollectionBase)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(Constraint)

Obtém o índice do Constraint especificado.

IndexOf(String)

Obtém o índice do Constraint especificado por nome.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnCollectionChanged(CollectionChangeEventArgs)

Aciona o evento CollectionChanged.

Remove(Constraint)

Remove o Constraint especificado da coleção.

Remove(String)

Remove o objeto Constraint especificado por nome da coleção.

RemoveAt(Int32)

Remove o objeto Constraint no índice especificado da coleção.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

CollectionChanged

Ocorre sempre que o ConstraintCollection é alterado devido objetos Constraint que sendo adicionados ou removidos.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

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