Metodo DbExpressionBuilder.SelectMany<TSelector> (DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression, TSelector>)
[Questa pagina è specifica della versione 6 di Entity Framework. La versione più recente è disponibile come pacchetto NuGet per "Entity Framework". Per ulteriori informazioni su Entity Framework, vedere la pagina msdn.com/data/ef.]
Crea un nuovo oggetto DbApplyExpression che valuta l'espressione apply specificata una volta per ogni elemento di un set di input specificato, producendo una raccolta di righe con colonne input e apply corrispondenti. Le righe per cui apply restituisce un set vuoto non vengono incluse. Verrà quindi creato un oggetto DbProjectExpression per la selezione dell'oggetto selector specificato su ogni riga, producendo la raccolta complessiva di risultati.
Spazio dei nomi: System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder
Assembly: EntityFramework (in EntityFramework.dll)
Sintassi
'Dichiarazione
<ExtensionAttribute> _
Public Shared Function SelectMany(Of TSelector) ( _
source As DbExpression, _
apply As Func(Of DbExpression, DbExpression), _
selector As Func(Of DbExpression, DbExpression, TSelector) _
) As DbProjectExpression
'Utilizzo
Dim source As DbExpression
Dim apply As Func(Of DbExpression, DbExpression)
Dim selector As Func(Of DbExpression, DbExpression, TSelector)
Dim returnValue As DbProjectExpression
returnValue = source.SelectMany(apply, _
selector)
public static DbProjectExpression SelectMany<TSelector>(
this DbExpression source,
Func<DbExpression, DbExpression> apply,
Func<DbExpression, DbExpression, TSelector> selector
)
[ExtensionAttribute]
public:
generic<typename TSelector>
static DbProjectExpression^ SelectMany(
DbExpression^ source,
Func<DbExpression^, DbExpression^>^ apply,
Func<DbExpression^, DbExpression^, TSelector>^ selector
)
static member SelectMany :
source:DbExpression *
apply:Func<DbExpression, DbExpression> *
selector:Func<DbExpression, DbExpression, 'TSelector> -> DbProjectExpression
JScript does not support generic types and methods.
Parametri di tipo
- TSelector
Tipo di risultato del metodo di selector.
Parametri
- source
Tipo: System.Data.Entity.Core.Common.CommandTrees.DbExpression
Oggetto DbExpression che specifica il set di input.
- apply
Tipo: System.Func<DbExpression, DbExpression>
Metodo che rappresenta la logica da valutare una volta per ogni membro del set di input.
- selector
Tipo: System.Func<DbExpression, DbExpression, TSelector>
Metodo che specifica come derivare un elemento del set di risultati dato un elemento dei set di input e apply. Questo metodo deve produrre un'istanza di un tipo compatibile con SelectMany che possa essere risolta in un oggetto DbExpression. Requisiti di compatibilità per TSelector come descritto nelle osservazioni.
Valore restituito
Tipo: System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression
Nuovo elemento DbProjectExpression che seleziona il risultato del selettore specificato da un nuovo oggetto DbApplyExpression con le associazioni input e apply specificate e un oggetto DbExpressionKind di CrossApply.
Nota sull'utilizzo
In Visual Basic e C# è possibile chiamare questo metodo come metodo di istanza su qualsiasi oggetto di tipo DbExpression. Per chiamare il metodo usando la sintassi del metodo di istanza, omettere il primo parametro. Per altre informazioni, vedere https://msdn.microsoft.com/it-it/library/bb384936(v=vs.113) o https://msdn.microsoft.com/it-it/library/bb383977(v=vs.113).
Eccezioni
Eccezione | Condizione |
---|---|
ArgumentNullException | source, apply o selector è Null. |
ArgumentNullException | L'espressione generata da apply è Null. |
ArgumentNullException | Il risultato di selector è Null nella conversione all'oggetto DbExpression. |
ArgumentException | source non dispone di un tipo di risultato della raccolta. |
ArgumentException | L'espressione generata da apply non dispone di un tipo di raccolta. |
Note
Per essere compatibile con SelectMany, <typeparamref name="TSelector" /> deve derivare da DbExpression o deve essere un tipo anonimo con le proprietà derivate da DbExpression. Di seguito sono riportati esempi di tipi supportati per <typeparamref name="TSelector" /> : <code>source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))</code> ( <typeparamref name="TSelector" /> is DbPropertyExpression ). <code>source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })</code> ( <typeparamref name="TSelector" /> è un tipo anonimo con proprietà derivate da DbExpression).
Vedere anche
Riferimento
Spazio dei nomi System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder