Operações de Junção (Visual Basic)

Uma 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 junção fornecidos na estrutura do LINQ são Join e GroupJoin. Esses métodos executam junção por igualdade ou junções que correspondem duas fontes de dados com base na igualdade de suas chaves. (Para comparação, o Transact-SQL dá suporte a operadores de junção diferentes de 'equals', por exemplo, o operador 'less than'). Em termos de banco de dados relacional, Join implementa uma junção interna, um tipo de junção no qual apenas os objetos que têm uma correspondência no outro conjunto de dados são retornados. O método GroupJoin não tem equivalente direto em termos de banco de dados relacional, mas ele implementa um superconjunto de junções internas e junções externas esquerdas. Uma junção externa esquerda é uma junção que retorna cada elemento da primeira (esquerda) fonte de dados, mesmo que ele 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.

Two overlapping circles showing inner/outer.

Métodos

Nome do método Descrição Sintaxe da 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. From x In …, y In … Where x.a = y.a

-ou-

Join … [As …]In … On …
Enumerable.Join

Queryable.Join
GroupJoin Une duas sequências baseadas em funções de seletor de chave e agrupa as correspondências resultantes para cada elemento. Group Join … In … On … Enumerable.GroupJoin

Queryable.GroupJoin

Confira também