Compartilhar via


DataRelation Classe

Definição

Representa uma relação pai/filho entre dois objetos DataTable.

public ref class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
public class DataRelation
public class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
[System.Serializable]
public class DataRelation
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
type DataRelation = class
type DataRelation = class
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
[<System.Serializable>]
type DataRelation = class
Public Class DataRelation
Herança
DataRelation
Atributos

Exemplos

O exemplo a seguir cria um novo DataRelation e o adiciona ao DataRelationCollection de um DataSet.

private void CreateRelation()
{
    // Get the DataColumn objects from two DataTable objects
    // in a DataSet. Code to get the DataSet not shown here.
    DataColumn parentColumn =
        DataSet1.Tables["Customers"].Columns["CustID"];
    DataColumn childColumn =
        DataSet1.Tables["Orders"].Columns["CustID"];
    // Create DataRelation.
    DataRelation relCustOrder;
    relCustOrder = new DataRelation("CustomersOrders",
        parentColumn, childColumn);
    // Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder);
}
Private Sub CreateRelation()
    ' Get the DataColumn objects from two DataTable objects 
    ' in a DataSet. Code to get the DataSet not shown here.
    Dim parentColumn As DataColumn = _
        DataSet1.Tables("Customers").Columns("CustID")
    Dim childColumn As DataColumn = DataSet1.Tables( _
        "Orders").Columns("CustID")

    ' Create DataRelation.
    Dim relCustOrder As DataRelation
    relCustOrder = New DataRelation( _
        "CustomersOrders", parentColumn, childColumn)

    ' Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder)
End Sub

Comentários

Um DataRelation é usado para relacionar dois DataTable objetos uns aos outros por meio DataColumn de objetos. Por exemplo, em uma relação Cliente/Pedidos, a tabela Clientes é o pai e a tabela Pedidos é o filho da relação. Isso é semelhante a uma relação chave primária/chave estrangeira. Para obter mais informações, consulte Navegar por DataRelations.

As relações são criadas entre colunas correspondentes nas tabelas pai e filho. Ou seja, o DataType valor para ambas as colunas deve ser idêntico.

As relações também podem cascata de várias alterações do pai DataRow para suas linhas filho. Para controlar como os valores são alterados em linhas filho, adicione um ForeignKeyConstraint ao ConstraintCollection objeto DataTable . Determina ConstraintCollection qual ação tomar quando um valor em uma tabela pai é excluído ou atualizado.

Quando um DataRelation é criado, primeiro verifica se a relação pode ser estabelecida. Depois de adicionada à DataRelationCollectionrelação, a relação é mantida, não permitindo alterações que a invalidem. Entre o período em que um DataRelation é criado e adicionado ao DataRelationCollection, é possível que alterações adicionais sejam feitas nas linhas pai ou filho. Uma exceção será gerada se isso causar uma relação que não é mais válida.

Observação

A corrupção de dados poderá ocorrer se uma relação bidirecional for definida entre duas tabelas. Uma relação bidirecional consiste em dois DataRelation objetos que usam as mesmas colunas, com as funções pai-filho alternadas. Nenhuma exceção é gerada quando os DataRelation objetos são salvos; no entanto, pode ocorrer corrupção de dados.

DataRelation os objetos estão contidos em um DataRelationCollection, que você pode acessar por meio da Relations propriedade do DataSet, e das ChildRelations propriedades e ParentRelations do DataTable.

Construtores

DataRelation(String, DataColumn, DataColumn)

Inicializa uma nova instância da classe DataRelation usando o nome DataRelation especificado e os objetos DataColumn pai e filho.

DataRelation(String, DataColumn, DataColumn, Boolean)

Inicializa uma nova instância da classe DataRelation usando o nome especificado, os objetos DataColumn pai e filho e um valor que indica se é necessário criar restrições.

DataRelation(String, DataColumn[], DataColumn[])

Inicializa uma nova instância da classe DataRelation usando o nome DataRelation e matrizes correspondentes de objetos DataColumn pai e filho.

DataRelation(String, DataColumn[], DataColumn[], Boolean)

Inicializa uma nova instância da classe DataRelation usando o nome especificado, matrizes correspondentes de objetos DataColumn pai e filho e um valor que indica se é necessário criar restrições.

DataRelation(String, String, String, String, String, String[], String[], Boolean)

Este construtor é fornecido para suporte de tempo de design no ambiente do Visual Studio.

DataRelation(String, String, String, String[], String[], Boolean)

Este construtor é fornecido para suporte de tempo de design no ambiente do Visual Studio.

Propriedades

ChildColumns

Obtém os objetos DataColumn filho dessa relação.

ChildKeyConstraint

Obtém o ForeignKeyConstraint para a relação.

ChildTable

Obtém a tabela filho dessa relação.

DataSet

Obtém o DataSet ao qual o DataRelation pertence.

ExtendedProperties

Obtém a coleção que armazena as propriedades personalizadas.

Nested

Obtém ou define um valor que indica se os objetos DataRelation são aninhados.

ParentColumns

Obtém uma matriz de objetos DataColumn que são as colunas pai desse DataRelation.

ParentKeyConstraint

Obtém o UniqueConstraint que garante que os valores na coluna pai de um DataRelation são exclusivos.

ParentTable

Obtém o pai DataTable desse DataRelation.

RelationName

Obtém ou define o nome usado para recuperar um DataRelation do DataRelationCollection.

Métodos

CheckStateForProperty()

Este método oferece suporte à infraestrutura .NET e não se destina a ser usado diretamente do seu código.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
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)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnPropertyChanging(PropertyChangedEventArgs)

Este membro dá suporte à infraestrutura .NET e não se destina a ser usado diretamente do código.

RaisePropertyChanging(String)

Este membro dá suporte à infraestrutura .NET e não se destina a ser usado diretamente do código.

ToString()

Obtém o RelationName, se houver.

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