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.
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 … |
|
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 … |
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
Tipos anônimos (Guia de Programação em C#)
Cláusula join (Referência de C#)