Operazioni di join
Un'operazione di join di due origini dati è l'associazione di oggetti in un'origine dati con gli oggetti che condividono un attributo comune in un'altra origine dati.
L'operazione di join è un'operazione importante nelle query destinate alle origini dati le cui relazioni reciproche non possono essere eseguite direttamente. Nella programmazione orientata a oggetti può rappresentare una correlazione tra oggetti non modellata, ad esempio la direzione inversa di una relazione unidirezionale. Un esempio di una relazione unidirezionale è una classe Customer contenente una proprietà di tipo City, ma la classe City non contiene una proprietà equivalente a un insieme di oggetti Customer. Se si dispone di un elenco di oggetti City e si desidera cercare tutti i clienti di ogni città, è possibile a tale scopo utilizzare un'operazione di join.
I metodi di join forniti nel framework LINQ sono Join e GroupJoin. Questi metodi eseguono equijoins o join che creano una corrispondenza tra due origini dati in base all'uguaglianza delle relative chiavi. Per eseguire il confronto, Transact-SQL supporta gli operatori di join tranne 'equals', ad esempio l'operatore 'less than'. In termini di database relazionale, Join implementa un inner join, un tipo di join in cui vengono restituiti solo quegli oggetti che hanno una corrispondenza nell'altro set di dati. Il metodo GroupJoin non dispone di un equivalente diretto in termini di database relazionale, ma implementa un superset di inner join e left outer join. Un left outer join è un join che restituisce ogni elemento della prima origine dati (a sinistra), anche se non ha elementi correlati nell'altra origine dati.
Nella figura seguente viene illustrata una visione concettuale di due insiemi e degli elementi all'interno di tali insiemi inclusi in un inner join o in un left outer join.
Metodi
Nome metodo |
Descrizione |
Sintassi dell'espressione di query in C# |
Sintassi dell'espressione di query in Visual Basic |
Ulteriori informazioni |
---|---|---|---|---|
Join |
Unisce due sequenze in base alle funzioni del selettore principale ed estrae le 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 alle funzioni del selettore principale e raggruppa le corrispondenze risultanti per ogni elemento. |
join … in … on … equals … into … |
Group Join … In … On … |
Vedere anche
Attività
Procedura: formulare join e query di prodotto incrociato (LINQ to SQL)
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 insiemi di oggetti da più origini (LINQ)
Riferimenti
Tipi anonimi (Guida per programmatori C#)
Clausola join (Riferimento C#)