DbExpressionBuilder.SelectMany Metodo

Definizione

Overload

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Crea un nuovo oggetto DbApplyExpression che valuta l'espressione apply specificata una volta per ogni elemento di un set di input specificato e produce una raccolta di righe con colonne corrispondenti relative all'input e all'espressione apply. Le righe in cui apply restituisce un set vuoto non vengono incluse. Viene quindi creato un oggetto DbProjectExpression che seleziona la colonna apply da ogni riga, producendo l'insieme complessivo di risultati apply.

SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)

Crea un nuovo oggetto DbApplyExpression che valuta l'espressione apply specificata una volta per ogni elemento di un set di input specificato e produce una raccolta di righe con colonne corrispondenti relative all'input e all'espressione apply. Le righe in cui apply restituisce un set vuoto non vengono incluse. Viene quindi creato un oggetto DbProjectExpression che seleziona il parametro selector specificato in ogni riga, producendo l'insieme complessivo di risultati.

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Crea un nuovo oggetto DbApplyExpression che valuta l'espressione apply specificata una volta per ogni elemento di un set di input specificato e produce una raccolta di righe con colonne corrispondenti relative all'input e all'espressione apply. Le righe in cui apply restituisce un set vuoto non vengono incluse. Viene quindi creato un oggetto DbProjectExpression che seleziona la colonna apply da ogni riga, producendo l'insieme complessivo di risultati apply.

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

Parametri

source
DbExpression

Oggetto DbExpression che specifica il set di input.

apply
Func<DbExpression,DbExpression>

Metodo che rappresenta la logica da valutare una volta per ogni membro del set di input.

Restituisce

Nuovo DbProjectExpression che seleziona la colonna di applicazione da un nuovo DbApplyExpression con l'input specificato e applica le associazioni e un DbExpressionKind di CrossApply.

Eccezioni

source o apply è null.

-oppure-

L'espressione generata da apply è Null.

source non contiene di un tipo di risultato della raccolta.

-oppure-

L'espressione prodotta da apply non dispone di un tipo di raccolta.

Si applica a

SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)

Crea un nuovo oggetto DbApplyExpression che valuta l'espressione apply specificata una volta per ogni elemento di un set di input specificato e produce una raccolta di righe con colonne corrispondenti relative all'input e all'espressione apply. Le righe in cui apply restituisce un set vuoto non vengono incluse. Viene quindi creato un oggetto DbProjectExpression che seleziona il parametro selector specificato in ogni riga, producendo l'insieme complessivo di risultati.

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

Parametri di tipo

TSelector

Tipo di risultato del metodo di selector.

Parametri

source
DbExpression

Oggetto DbExpression che specifica il set di input.

apply
Func<DbExpression,DbExpression>

Metodo che rappresenta la logica da valutare una volta per ogni membro del set di input.

selector
Func<DbExpression,DbExpression,TSelector>

Metodo che specifica come derivare un elemento del set di risultati dato un elemento dei set relativi all'input e all'espressione apply. Questo metodo deve produrre un'istanza che presenti un tipo compatibile con SelectMany e che possa essere risolto in un oggetto DbExpression. I requisiti di compatibilità per TSelector sono descritti nelle note.

Restituisce

Nuovo DbProjectExpression che seleziona il risultato del selettore specificato da un nuovo DbApplyExpression con l'input specificato e applica le associazioni e un DbExpressionKind di CrossApply.

Eccezioni

source, apply o selector è Null.

-oppure-

L'espressione generata da apply è Null.

-oppure-

Il risultato di selector è null nella conversione a DbExpression.

source non contiene di un tipo di risultato della raccolta.

-oppure-

L'espressione prodotta da apply non dispone di un tipo di raccolta. non dispone di un tipo di raccolta.

Commenti

Per essere compatibile con SelectMany, TSelector deve essere derivato da DbExpressiono deve essere un tipo anonimo con proprietà derivate da DbExpression. Di seguito sono riportati esempi di tipi supportati per TSelector:

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))  

(TSelector è DbPropertyExpression).

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })  

(TSelector è un tipo anonimo con proprietà derivate da DbExpression).

Si applica a