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í
| Name | Description |
|---|---|
| SelectMany(DbExpression, Func<DbExpression,DbExpression>) |
Vytvoří novou DbApplyExpression , která vyhodnotí daný |
| SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>) |
Vytvoří novou DbApplyExpression , která vyhodnotí daný |
SelectMany(DbExpression, Func<DbExpression,DbExpression>)
Vytvoří novou DbApplyExpression , která vyhodnotí daný apply výraz jednou pro každý prvek dané vstupní sady, vytvoří kolekci řádků s odpovídajícím vstupem a použije 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 nemá typ výsledku kolekce.
nebo
Výraz vytvořený službou apply nemá typ kolekce.
Platí pro
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)
Vytvoří novou DbApplyExpression , která vyhodnotí daný apply výraz jednou pro každý prvek dané vstupní sady, vytvoří kolekci řádků s odpovídajícím vstupem a použije sloupce. Řádky, pro které apply se vyhodnotí jako prázdná sada, nejsou zahrnuty. Potom se vytvoří, DbProjectExpression která vybere zadaný selector řádek 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 má být prvek sady výsledků odvozen vzhledem k elementu vstupu a použít sady. Tato metoda musí vytvořit instanci typu, který je kompatibilní s SelectMany a lze jej přeložit do .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 DbExpressionKind CrossApply.
Výjimky
source
apply nebo selector má hodnotu null.
nebo
Výraz vytvořený hodnotou apply null.
nebo
Výsledek selector je null při převodu na DbExpression.
source nemá typ výsledku kolekce.
nebo
Výraz vytvořený službou 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 DbExpression odvozené vlastnosti. Tady jsou 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 dbExpression odvozenými vlastnostmi).