DbExpressionBuilder.SelectMany Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
SelectMany(DbExpression, Func<DbExpression,DbExpression>) |
Crea un nuovo oggetto DbApplyExpression che valuta l'espressione |
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>) |
Crea un nuovo oggetto DbApplyExpression che valuta l'espressione |
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
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).