DbExpressionBuilder.Join Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>) |
Vytvoří nový DbJoinExpression , který spojí sady určené vnějšími a vnitřními výrazy, za podmínky rovnosti mezi zadanými vnějšími a vnitřními klíči pomocí InnerJoin jako DbExpressionKind. |
Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>) |
Vytvoří nový DbProjectExpression , který projektuje zadaný selektor nad sadami určenými vnějšími a vnitřními výrazy, které jsou spojené pod podmínkou rovnosti mezi zadanými vnějšími a vnitřními klíči, pomocí InnerJoin jako DbExpressionKind. |
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)
Vytvoří nový DbJoinExpression , který spojí sady určené vnějšími a vnitřními výrazy, za podmínky rovnosti mezi zadanými vnějšími a vnitřními klíči pomocí InnerJoin jako DbExpressionKind.
public:
[System::Runtime::CompilerServices::Extension]
static System::Data::Common::CommandTrees::DbJoinExpression ^ Join(System::Data::Common::CommandTrees::DbExpression ^ outer, System::Data::Common::CommandTrees::DbExpression ^ inner, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ outerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ innerKey);
public static System.Data.Common.CommandTrees.DbJoinExpression Join (this System.Data.Common.CommandTrees.DbExpression outer, System.Data.Common.CommandTrees.DbExpression inner, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> outerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> innerKey);
static member Join : System.Data.Common.CommandTrees.DbExpression * System.Data.Common.CommandTrees.DbExpression * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression> * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression> -> System.Data.Common.CommandTrees.DbJoinExpression
<Extension()>
Public Function Join (outer As DbExpression, inner As DbExpression, outerKey As Func(Of DbExpression, DbExpression), innerKey As Func(Of DbExpression, DbExpression)) As DbJoinExpression
Parametry
- outer
- DbExpression
A DbExpression , který určuje argument vnější sady.
- inner
- DbExpression
A DbExpression , který určuje argument vnitřní sady.
- outerKey
- Func<DbExpression,DbExpression>
Metoda, která určuje, jak má být hodnota vnějšího klíče odvozena z prvku vnější množiny.
- innerKey
- Func<DbExpression,DbExpression>
Metoda, která určuje, jak má být hodnota vnitřního klíče odvozena od prvku vnitřní množiny.
Návraty
Nový DbJoinExpression, s DbExpressionKind InnerJoin, který představuje vnitřní spojení operace použité na levé a pravé vstupní sady pod podmínkou spojení, která porovnává hodnoty vnějšího a vnitřního klíče pro rovnost.
Výjimky
outer
outerKey
, inner
nebo innerKey
má hodnotu null.
-nebo-
Výraz vytvořený pomocí outerKey
nebo innerKey
má hodnotu null.
outer
nebo inner
nemá typ výsledku kolekce.
-nebo-
Výrazy vytvořené a outerKey
innerKey
nejsou srovnatelné z hlediska rovnosti.
Platí pro
Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)
Vytvoří nový DbProjectExpression , který projektuje zadaný selektor nad sadami určenými vnějšími a vnitřními výrazy, které jsou spojené pod podmínkou rovnosti mezi zadanými vnějšími a vnitřními klíči, pomocí InnerJoin jako DbExpressionKind.
public:
generic <typename TSelector>
[System::Runtime::CompilerServices::Extension]
static System::Data::Common::CommandTrees::DbProjectExpression ^ Join(System::Data::Common::CommandTrees::DbExpression ^ outer, System::Data::Common::CommandTrees::DbExpression ^ inner, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ outerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ innerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^, TSelector> ^ selector);
public static System.Data.Common.CommandTrees.DbProjectExpression Join<TSelector> (this System.Data.Common.CommandTrees.DbExpression outer, System.Data.Common.CommandTrees.DbExpression inner, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> outerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> innerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression,TSelector> selector);
static member Join : System.Data.Common.CommandTrees.DbExpression * System.Data.Common.CommandTrees.DbExpression * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression> * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression> * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression, 'Selector> -> System.Data.Common.CommandTrees.DbProjectExpression
<Extension()>
Public Function Join(Of TSelector) (outer As DbExpression, inner As DbExpression, outerKey As Func(Of DbExpression, DbExpression), innerKey As Func(Of DbExpression, DbExpression), selector As Func(Of DbExpression, DbExpression, TSelector)) As DbProjectExpression
Parametry typu
- TSelector
Typ .selector
Parametry
- outer
- DbExpression
A DbExpression , který určuje argument vnější sady.
- inner
- DbExpression
A DbExpression , který určuje argument vnitřní sady.
- outerKey
- Func<DbExpression,DbExpression>
Metoda, která určuje, jak má být hodnota vnějšího klíče odvozena z prvku vnější množiny.
- innerKey
- Func<DbExpression,DbExpression>
Metoda, která určuje, jak má být hodnota vnitřního klíče odvozena od prvku vnitřní množiny.
- selector
- Func<DbExpression,DbExpression,TSelector>
Metoda, která určuje, jak by měl být odvozen prvek sady výsledků dotazu z prvků vnitřních a vnějších sad. Tato metoda musí vytvořit instanci typu, která je kompatibilní s Join a lze ji přeložit na DbExpression. Požadavky na kompatibilitu pro TSelector
jsou popsány v poznámkách.
Návraty
Nový DbProjectExpression se zadaným selektorem jako jeho projekcí a novým DbJoinExpression jako jeho vstupem. Vstup DbJoinExpression je vytvořen s hodnotou DbExpressionKind InnerJoin, která představuje vnitřní operaci spojení použitou na levé a pravé vstupní sady pod podmínkou spojení, která porovnává hodnoty vnějšího a vnitřního klíče pro rovnost.
Výjimky
outer
, inner
, outerKey
innerKey
nebo selector
má hodnotu null.
-nebo-
Výraz vytvořený pomocí outerKey
nebo innerKey
má hodnotu null.
-nebo-
Výsledek selector
je null po převodu na DbExpression.
outer
nebo inner
nemá typ výsledku kolekce.
-nebo-
Výrazy vytvořené pomocí outerKey
a innerKey
nejsou srovnatelné z hlediska rovnosti.
-nebo-
Výsledek selector
není kompatibilní s funkcí SelectMany.
Poznámky
Chcete-li být kompatibilní s join, TSelector
musí být odvozen z DbExpressionnebo musí být anonymní typ s vlastnostmi odvozenými od DbExpression. Následují příklady podporovaných typů pro TSelector
:
outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))
(TSelector
je DbPropertyExpression).
outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })
(TSelector
je anonymní typ s vlastnostmi odvozenými od DbExpression).