Condividi tramite


Operazioni di join (Visual Basic)

Un join di due fonti dati è l'associazione di oggetti in una fonte dati con oggetti che condividono un attributo comune in un'altra.

L'operazione di join è importante nelle query destinate a origini dati la cui relazione reciproca non può essere seguita direttamente. Nella programmazione orientata agli oggetti, ciò potrebbe significare una correlazione tra oggetti non modellati, ad esempio la direzione indietro di una relazione unidirezionale. Un esempio di relazione unidirezionale è una classe Customer con una proprietà di tipo City, ma la classe City non dispone di una proprietà che è una raccolta di oggetti Customer. Se si dispone di un elenco di oggetti City e si desidera trovare tutti i clienti in ogni città, è possibile usare un'operazione di join per trovarli.

I metodi di join forniti nel framework LINQ sono Join e GroupJoin. Questi metodi eseguono equijoin, ovvero join che associano due origini dati in base all'uguaglianza delle rispettive chiavi. Per il confronto, Transact-SQL supporta operatori join diversi da 'equals', ad esempio l'operatore 'minore di'. In termini di database relazionale, Join implementa un inner join, un tipo di join in cui vengono restituiti solo gli oggetti che hanno una corrispondenza nell'altro set di dati. Il metodo GroupJoin non ha equivalenti diretti in termini di database relazionale, ma implementa un superset di inner join e left outer join. Un join esterno sinistro è un join che restituisce ogni elemento della prima origine dati (sinistra), anche se non ha elementi correlati nell'altra origine dati.

La figura seguente mostra una rappresentazione concettuale di due set e gli elementi che sono inclusi in un join interno o in un join esterno sinistro.

Due cerchi sovrapposti che mostrano interno/esterno.

Metodi

Nome metodo Descrizione Sintassi delle espressioni di query di Visual Basic Altre informazioni
Unisciti. Unisce due sequenze in base a funzioni selector chiave ed estrae coppie di valori From x In …, y In … Where x.a = y.a

oppure

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

Queryable.Join
GroupJoin Unisce due sequenze in base a funzioni selector chiave e raggruppa le corrispondenze risultanti per ogni elemento. Group Join … In … On … Enumerable.GroupJoin

Queryable.GroupJoin

Vedere anche