Partilhar 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 como true) ao DataColumnCollection. O segundo exemplo cria um DataSet, dois DataTable objetos, quatro colunas e um DataRelation. A contagem de restrições é impressa para mostrar que um ForeignKeyConstraint e um UniqueConstraint são criados quando um DataRelation é adicionado ao DataSet objeto 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

Ele ConstraintCollection é acessado por meio da DataTable.Constraints propriedade.

O ConstraintCollection pode conter objetos e ForeignKeyConstraint ambos UniqueConstraint para o DataTable. Um UniqueConstraint objeto garante que os dados em uma coluna específica sejam sempre exclusivos para preservar a integridade dos dados. Determina ForeignKeyConstraint o que ocorrerá em tabelas relacionadas quando os DataTable dados no são atualizados ou excluídos. Por exemplo, se uma linha for excluída, determinará ForeignKeyConstraint 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, tanto um ForeignKeyConstraint quanto um UniqueConstraint são criados automaticamente. Ela UniqueConstraint é aplicada à coluna de chave primária no pai DataTablee a restrição é adicionada à tabela ConstraintCollection. Ela ForeignKeyConstraint é aplicada à coluna de chave primária e à coluna de chave estrangeira, e a restrição é adicionada à tabela ConstraintCollectionfilho.

A ConstraintCollection coleção 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 uma DataColumn propriedade com a qual a Unique propriedade está definida true é adicionada a um DataTable objeto DataColumnCollection.

Um ForeignKeyConstraint é criado quando um DataRelation é adicionado a um DataSet objeto.DataRelationCollection

Propriedades

Nome Description
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 valor é somente leitura.

(Herdado de InternalDataCollectionBase)
IsSynchronized

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

(Herdado de InternalDataCollectionBase)
Item[Int32]

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

Item[String]

Obtém a 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

Nome Description
Add(Constraint)

Adiciona o objeto especificado Constraint à coleção.

Add(String, DataColumn, Boolean)

Constrói um novo UniqueConstraint com o nome DataColumnespecificado e um valor que indica se a coluna é uma chave primária e a adiciona à coleção.

Add(String, DataColumn, DataColumn)

Constrói um novo ForeignKeyConstraint com o nome, a coluna pai e a coluna filho especificados e adiciona a restrição à coleção.

Add(String, DataColumn[], Boolean)

Constrói um novo UniqueConstraint com o nome, a matriz de DataColumn objetos e o valor especificados que indica se a coluna é uma chave primária e a adiciona à coleção.

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

Constrói um novo ForeignKeyConstraint, com as matrizes especificadas de colunas pai e colunas filho, e adiciona a restrição à coleção.

AddRange(Constraint[])

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

CanRemove(Constraint)

Indica se um Constraint pode ser removido.

Clear()

Limpa a coleção de objetos Constraint .

Contains(String)

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

CopyTo(Array, Int32)

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

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

Copia os objetos da coleção para uma instância unidimensional Array 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 especificado Constraint.

IndexOf(String)

Obtém o índice do Constraint nome especificado.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OnCollectionChanged(CollectionChangeEventArgs)

Aciona o evento CollectionChanged.

Remove(Constraint)

Remove o especificado Constraint da coleção.

Remove(String)

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

RemoveAt(Int32)

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

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

Nome Description
CollectionChanged

Ocorre sempre que o ConstraintCollection objeto é alterado devido Constraint a objetos que estão sendo adicionados ou removidos.

Métodos de Extensão

Nome Description
AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

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.

Aplica-se a

Acesso thread-safe

Esse tipo é seguro para operações de leitura multithreaded. Você deve sincronizar todas as operações de gravação.

Confira também