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.
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 … |
|
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 … |
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
Tipi anonimi (Guida per programmatori C#)
Clausola join (Riferimento C#)