Udostępnij za pośrednictwem


Operacje sprzężenia (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 przeznaczonych dla źródeł danych, których relacje ze sobą nie mogą być wykonywane 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 ma właściwość typu City, ale klasa City nie ma właściwości, która jest kolekcją obiektów Customer. Jeśli masz listę obiektów City i chcesz znaleźć wszystkich klientów w każdym mieście, możesz użyć operacji sprzężenia, aby je znaleźć.

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 język Transact-SQL obsługuje operatory sprzężenia inne niż "równe", na przykład operator "less than". W warunkach Join relacyjnej bazy danych 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. Lewe sprzężenie zewnętrzne to sprzężenie zwracające każdy element pierwszego (po lewej) źródle danych, nawet jeśli nie ma skorelowanych elementów w innym ź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.

Two overlapping circles showing inner/outer.

Metody

Nazwa metody opis Składnia wyrażeń zapytań języka Visual Basic Więcej informacji
Dołączanie Łą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
Groupjoin Łą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 też