Udostępnij za pomocą


Operacje łączenia (Visual Basic)

Sprzężenie dwóch źródeł danych to skojarzenie obiektów w jednym źródle danych z obiektami, które współdzielą wspólny atrybut w innym źródle danych.

Łączenie jest ważną operacją w zapytaniach skierowanych do źródeł danych, których relacji nie można śledzić bezpośrednio. W programowaniu obiektowym może to oznaczać korelację między obiektami, które nie są modelowane, takie jak kierunek wsteczny relacji jednokierunkowej. Przykładem relacji jednokierunkowej jest klasa Customer, która posiada właściwość typu City, natomiast klasa City nie zawiera właściwości będącej kolekcją obiektów Customer. Jeśli masz listę obiektów typu City i chcesz znaleźć wszystkich klientów w każdym mieście, możesz użyć operacji złączenia, aby ich wyszukać.

Metody sprzężenia dostępne w strukturze LINQ to Join i GroupJoin. Te metody wykonują równoczesne lub sprzężenia pasujące do dwóch źródeł danych na podstawie równości kluczy. (Dla porównania, Transact-SQL obsługuje operatory sprzężenia inne niż "równe", na przykład operator "mniejszy niż".) W terminologii relacyjnych baz danych, Join implementuje sprzężenie wewnętrzne, typ sprzężenia, w którym zwracane są tylko te obiekty, które mają dopasowanie w innym zestawie danych. Metoda GroupJoin nie ma bezpośredniego odpowiednika w terminach relacyjnej bazy danych, ale implementuje nadzbiór sprzężeń wewnętrznych i lewe sprzężenia zewnętrzne. Łączenie zewnętrzne lewe to łączenie, które zwraca każdy element pierwszego (lewego) źródła danych, nawet jeśli nie ma skorelowanych elementów w drugim źródle danych.

Poniższa ilustracja przedstawia koncepcyjny widok dwóch zestawów oraz elementy w tych zestawach, które znajdują się w sprzężeniu wewnętrznym lub lewym sprzężeniu zewnętrznym.

Dwa nakładające się okręgi przedstawiające wewnętrzne/zewnętrzne.

Metody

Nazwa metody Opis Składnia wyrażeń zapytań języka Visual Basic Więcej informacji
Dołączyć Łączy dwie sekwencje na podstawie funkcji selektora kluczy i wyodrębnia pary wartości. From x In …, y In … Where x.a = y.a

— lub —

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

Queryable.Join
Łączenie grup Łączy dwie sekwencje na podstawie funkcji selektora kluczy i grupuje wynikowe dopasowania dla każdego elementu. Group Join … In … On … Enumerable.GroupJoin

Queryable.GroupJoin

Zobacz także