Compartilhar via


Operações join

A junção de duas fontes de dados é a associação de objetos em uma fonte de dados com objetos que compartilham um atributo comum em outra fonte de dados.

A junção é uma operação importante em consultas que têm como destino fontes de dados cujas relações entre si não podem ser seguidas diretamente. Na programação orientada a objeto, isso pode significar uma correlação entre objetos que não são modelados, como a direção retroativa de uma relação unidirecional. Um exemplo de uma relação unidirecional é uma classe Cliente que tem uma propriedade do tipo Cidade, mas a classe Cidade ainda não tem uma propriedade que é uma coleção de objetos Cliente. Se você tem uma lista de objetos Cidade e você quer encontrar todos os clientes em cada cidade, você pode usar uma operação de junção para encontrá-los.

Os métodos de função fornecidos na estrutura LINQ são Join``4 e GroupJoin``4. Esses métodos executam junções equivalentes ou junções que correspondem a duas fontes de dados baseadas na igualdade de suas chaves. (Para comparação, o Transact-SQL oferece suporte a operadores de junção diferentes de 'equals', por exemplo, o 'less than'.) Em termos de banco de dados relacionais, o método Join``4 implementa uma junção interna, um tipo de associação em que apenas os objetos que têm uma correspondência no outro conjunto de dados são retornados. O método GroupJoin``4 não tem equivalente em termos de banco de dados relacionais, mas ele implementa um superconjunto de junções internas e junções externas esquerdas. A junção externa esquerda é uma junção que retorna cada elemento da primeira (à esquerda) fonte de dados, mesmo que não tenha elementos correlacionados na outra fonte de dados.

A ilustração a seguir mostra uma visão conceitual de dois conjuntos e os elementos dentro desses conjuntos que estão incluídos em uma junção interna ou externa à esquerda.

Dois círculos sobrepostos mostrando interna/externa.

Métodos

Nome do método

Descrição

Sintaxe de expressão de consulta C#

Sintaxe de expressão de consulta do Visual Basic

Mais informações

Join

Une duas sequências com base nas funções de seletor de chave e extrai pares de valores.

join … in … on … equals …

From x In …, y In … Where x.a = y.a

-ou-

Join … [As …]In … On …

Enumerable.Join``4

Queryable.Join``4

GroupJoin

Une duas sequências baseadas em funções de seletor de chave e agrupa as correspondências resultantes para cada elemento.

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin``4

Queryable.GroupJoin``4

Consulte também

Tarefas

Formular junções e consultas entre produtos

Como unir usando chaves compostas (Guia de Programação em C#)

Como unir conteúdo a partir de arquivos diferentes (LINQ)

Como ordenar os resultados de uma cláusula join (Guia de Programação em C#)

Como executar operações de junção personalizadas (Guia de Programação em C#)

Como executar junções agrupadas (Guia de Programação em C#)

Como executar junções internas (Guia de Programação em C#)

Como executar junções externas esquerdas (Guia de Programação em C#)

Como preencher coleções de objetos a partir de várias fontes (LINQ)

Referência

System.Linq

Tipos anônimos (Guia de Programação em C#)

Cláusula join (Referência de C#)

Cláusula Join (Visual Basic)

Conceitos

Visão geral de operadores de consulta padrão

Tipos anônimos (Visual Basic)