DbExpressionBuilder.SelectMany 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í
SelectMany(DbExpression, Func<DbExpression,DbExpression>) |
Vytvoří nový DbApplyExpression , který vyhodnotí daný |
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>) |
Vytvoří nový DbApplyExpression , který vyhodnotí daný |
SelectMany(DbExpression, Func<DbExpression,DbExpression>)
Vytvoří nový DbApplyExpression , který vyhodnotí daný apply
výraz jednou pro každý prvek dané vstupní sady a vytvoří kolekci řádků s odpovídajícím vstupem a použít sloupce. Řádky, pro které apply
se vyhodnotí jako prázdná sada, nejsou zahrnuty. Potom DbProjectExpression se vytvoří sloupec, který vybere apply
sloupec z každého řádku a vytvoří celkovou kolekci apply
výsledků.
public:
[System::Runtime::CompilerServices::Extension]
static System::Data::Common::CommandTrees::DbProjectExpression ^ SelectMany(System::Data::Common::CommandTrees::DbExpression ^ source, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ apply);
public static System.Data.Common.CommandTrees.DbProjectExpression SelectMany (this System.Data.Common.CommandTrees.DbExpression source, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> apply);
static member SelectMany : System.Data.Common.CommandTrees.DbExpression * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression> -> System.Data.Common.CommandTrees.DbProjectExpression
<Extension()>
Public Function SelectMany (source As DbExpression, apply As Func(Of DbExpression, DbExpression)) As DbProjectExpression
Parametry
- source
- DbExpression
A DbExpression , který určuje vstupní sadu.
- apply
- Func<DbExpression,DbExpression>
Metoda, která představuje logiku, která se má vyhodnotit jednou pro každého člena vstupní sady.
Návraty
Nový DbProjectExpression, který vybere sloupec apply z nového DbApplyExpression se zadaným vstupem a použije vazby a DbExpressionKind crossapply.
Výjimky
source
nebo apply
je null.
-nebo-
Výraz vytvořený pomocí apply
má hodnotu null.
source
nemá typ výsledku kolekce.
-nebo-
Výraz vytvořený nástrojem apply
nemá typ kolekce.
Platí pro
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)
Vytvoří nový DbApplyExpression , který vyhodnotí daný apply
výraz jednou pro každý prvek dané vstupní sady a vytvoří kolekci řádků s odpovídajícím vstupem a použít sloupce. Řádky, pro které apply
se vyhodnotí jako prázdná sada, nejsou zahrnuty. Potom DbProjectExpression se vytvoří objekt, který vybere zadanou selector
položku nad každým řádkem a vytvoří celkovou kolekci výsledků.
public:
generic <typename TSelector>
[System::Runtime::CompilerServices::Extension]
static System::Data::Common::CommandTrees::DbProjectExpression ^ SelectMany(System::Data::Common::CommandTrees::DbExpression ^ source, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ apply, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^, TSelector> ^ selector);
public static System.Data.Common.CommandTrees.DbProjectExpression SelectMany<TSelector> (this System.Data.Common.CommandTrees.DbExpression source, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> apply, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression,TSelector> selector);
static member SelectMany : 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 SelectMany(Of TSelector) (source As DbExpression, apply As Func(Of DbExpression, DbExpression), selector As Func(Of DbExpression, DbExpression, TSelector)) As DbProjectExpression
Parametry typu
- TSelector
Typ výsledku selector
metody .
Parametry
- source
- DbExpression
A DbExpression , který určuje vstupní sadu.
- apply
- Func<DbExpression,DbExpression>
Metoda, která představuje logiku, která se má vyhodnotit jednou pro každého člena vstupní sady.
- selector
- Func<DbExpression,DbExpression,TSelector>
Metoda, která určuje, jak by měl být odvozen prvek sady výsledků vzhledem k elementu vstupní a použít sady. Tato metoda musí vytvořit instanci typu, která je kompatibilní s SelectMany a lze ji přeložit na DbExpression. Požadavky na kompatibilitu jsou TSelector
popsány v poznámkách.
Návraty
Nový DbProjectExpression, který vybere výsledek daného selektoru z nového DbApplyExpression se zadaným vstupem a použije vazby a z DbExpressionKind CrossApply.
Výjimky
source
nebo apply
selector
je null.
-nebo-
Výraz vytvořený pomocí apply
má hodnotu null.
-nebo-
Výsledek selector
je null při převodu na DbExpression.
source
nemá typ výsledku kolekce.
-nebo-
Výraz vytvořený nástrojem apply
nemá typ kolekce. nemá typ kolekce.
Poznámky
Chcete-li být kompatibilní s SelectMany, TSelector
musí být odvozen z DbExpression, nebo musí být anonymní typ s vlastnostmi odvozenými od DbExpression. Níže jsou uvedené příklady podporovaných typů pro TSelector
:
source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))
(TSelector
je DbPropertyExpression).
source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })
(TSelector
je anonymní typ s vlastnostmi odvozenými od DbExpression).