Sdílet prostřednictvím


DbExpressionBuilder.SelectMany Metoda

Definice

Přetížení

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

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

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

Platí pro