Compartilhar via


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 visam fontes de dados cujas relações entre si não podem ser seguidas diretamente. Na programação orientada a objetos, isso pode significar uma correlação entre objetos que não são modelados, como a direção anterior de uma relação unidirecional. Um exemplo de um relacionamento unidirecional é uma classe Cliente que possui uma propriedade do tipo Cidade, mas a classe Cidade não tem uma propriedade que seja uma coleção de objetos Cliente. Se você tiver uma lista de objetos da Cidade e quiser encontrar todos os clientes em cada cidade, poderá usar uma operação de junção para encontrá-los.

Os métodos de junção fornecidos na estrutura 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, Transact-SQL dá suporte a operadores de junção diferentes de "iguais", por exemplo, o operador 'less than'. Em termos de banco de dados relacional, Join implementa uma junção interna, um tipo de junção na qual somente 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 origem de dados (à esquerda), mesmo que não tenha elementos correlacionados na outra origem 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 interno/externo.

Métodos

Nome do método Descrição Sintaxe da expressão de consulta do Visual Basic Mais informações
Participar 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
UnirGrupo 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

Consulte também