Condividi tramite


Operazioni di join

Un join di due origini dati è un'associazione di oggetti in un'origine dati con gli oggetti che condividono un attributo comune in un'altra origine dati.

La creazione di un join è un'operazione importante nelle query che fanno riferimento a origini dati le cui relazioni reciproche non possono essere seguite direttamente. Nella programmazione orientata a oggetti ciò potrebbe corrispondere a una correlazione non modellata tra oggetti, ad esempio la direzione inversa di una relazione unidirezionale. Un esempio di relazione unidirezionale è costituito da una classe Customer che include una proprietà di tipo City, ma la classe City non include una proprietà che sia una raccolta di oggetti Customer. Se si ha un elenco di oggetti City e si vogliono trovare tutti i clienti in ogni città, è possibile usare un'operazione join per individuarli.

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

L'illustrazione seguente mostra una visualizzazione concettuale dei due set e degli elementi dei set che sono inclusi in un inner join o in un left outer join.

Due cerchi sovrapposti che mostrano interno/esterno

Metodi

Nome metodo

Descrizione

Sintassi di espressione della query C#

Sintassi di espressione della query Visual Basic

Altre informazioni

Join

Unisce due sequenze in base a funzioni selector chiave ed estrae coppie di valori

join … in … on … equals …

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

-oppure-

Join … [As …]In … On …

Enumerable.Join``4

Queryable.Join``4

GroupJoin

Unisce due sequenze in base a funzioni selector chiave e raggruppa le corrispondenze risultanti per ogni elemento.

join … in … on … equals … into …

Group Join … In … On …

Enumerable.GroupJoin``4

Queryable.GroupJoin``4

Vedere anche

Attività

Formulare join e query di prodotto incrociato

Procedura: eseguire un join utilizzando una chiave composta (Guida per programmatori C#)

Procedura: unire contenuto da file dissimili (LINQ)

Procedura: ordinare i risultati di una clausola join (Guida per programmatori C#)

Procedura: eseguire operazioni di join personalizzate (Guida per programmatori C#)

Procedura: eseguire dei join raggruppati (Guida per programmatori C#)

Procedura: eseguire degli inner join (Guida per programmatori C#)

Procedura: eseguire dei left outer join (Guida per programmatori C#)

Procedura: popolare raccolte di oggetti da più origini (LINQ)

Riferimenti

System.Linq

Tipi anonimi (Guida per programmatori C#)

Clausola join (Riferimento C#)

Clausola Join (Visual Basic)

Concetti

Cenni preliminari sugli operatori di query standard

Tipi anonimi (Visual Basic)