Operace spojení (Visual Basic)

Spojení dvou zdrojů dat je přidružení objektů v jednom zdroji dat k objektům, které sdílejí společný atribut v jiném zdroji dat.

Spojení je důležitou operací v dotazech, které cílí na zdroje dat, jejichž vztahy mezi sebou nelze sledovat přímo. V objektově orientovaném programování to může znamenat korelaci mezi objekty, které nejsou modelovány, například zpětné směr jednosměrné relace. Příkladem jednosměrné relace je třída Zákazník, která má vlastnost typu City, ale třída City nemá vlastnost, která je kolekcí objektů Customer. Pokud máte seznam objektů Města a chcete najít všechny zákazníky v každém městě, můžete k jejich vyhledání použít operaci spojení.

Metody spojení poskytované v rozhraní LINQ jsou Join a GroupJoin. Tyto metody provádějí koňovitosti nebo spojení, která odpovídají dvěma zdrojům dat na základě rovnosti jejich klíčů. (Pro porovnání jazyk Transact-SQL podporuje operátory spojení jiné než "equals", například operátor "less than".) V relačních databázových termínech Join implementuje vnitřní spojení, typ spojení, ve kterém se vrátí pouze ty objekty, které mají shodu v jiné sadě dat. Metoda GroupJoin nemá žádné přímé ekvivalenty v relačních databázových termínech, ale implementuje nadmnožinu vnitřních spojení a levých vnějších spojení. Levé vnější spojení je spojení, které vrací každý prvek prvního (levého) zdroje dat, i když neobsahuje žádné korelované prvky v jiném zdroji dat.

Následující obrázek znázorňuje koncepční zobrazení dvou sad a prvků v těchto sadách, které jsou součástí vnitřního spojení nebo levého vnějšího spojení.

Two overlapping circles showing inner/outer.

Metody

Název metody Popis Syntaxe výrazů dotazu jazyka Visual Basic Další informace
Připojení Spojí dvě sekvence na základě funkcí selektoru klíčů a extrahuje dvojice hodnot. From x In …, y In … Where x.a = y.a

nebo

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

Queryable.Join
GroupJoin Spojí dvě sekvence na základě funkcí selektoru klíčů a seskupí výsledné shody pro každý prvek. Group Join … In … On … Enumerable.GroupJoin

Queryable.GroupJoin

Viz také