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 selectormetody .
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
sourcenebo applyselector 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).