DbExpressionBuilder.SelectMany Metoda

Definice

Přetížení

Name Description
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ů.

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ů.

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 nebo apply má hodnotu null.

nebo

Výraz vytvořený hodnotou apply null.

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).

Platí pro