Freigeben über


DbExpressionBuilder.SelectMany<TSelector>-Methode (DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression, TSelector>)

[Diese Seite bezieht sich auf Entity Framework Version 6. Die neueste Version ist als 'Entity Framework' NuGet-Paket verfügbar. Weitere Informationen zu Entity Framework finden Sie unter msdn.com/data/ef.]

Erstellt einen neuen DbApplyExpression, der den angegebenen apply-Ausdruck für jedes Element eines angegebenen Eingabesets einmal auswertet und eine Auflistung von Zeilen mit entsprechenden Eingabe- und Übernahmespalten erzeugt. Zeilen, für die apply als leere Menge ausgewertet wird, werden nicht eingeschlossen. Ein DbProjectExpression wird dann erstellt, der den angegebenen selector für jede Zeile auswählt und die Gesamtauflistung der Ergebnisse erzeugt.

Namespace:  System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder
Assembly:  EntityFramework (in EntityFramework.dll)

Syntax

'Declaration
<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
'Usage
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.

Typparameter

  • TSelector
    Der Methodenergebnistyp von selector.

Parameter

  • selector
    Typ: System.Func<DbExpression, DbExpression, TSelector>
    Eine Methode, die angibt, wie ein Element des Resultsets bei Angabe eines Elements des Eingabe- und Übernahmesets abgeleitet werden soll. Diese Methode muss eine Instanz eines Typs erzeugen, der mit SelectMany kompatibel ist und in einen DbExpression aufgelöst werden kann. Kompatibilitätsanforderungen für TSelector werden in den Hinweisen erläutert.

Rückgabewert

Typ: System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression
Ein neuer DbProjectExpression, der das Ergebnis des angegebenen Selektors aus einem neuen DbApplyExpression mit den angegebenen Eingabe- und Übernahmebindungen und einem DbExpressionKind von CrossApply auswählt.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ DbExpression aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter https://msdn.microsoft.com/de-de/library/bb384936(v=vs.113) oder https://msdn.microsoft.com/de-de/library/bb383977(v=vs.113).

Ausnahmen

Ausnahme Bedingung
ArgumentNullException

source, apply oder selector ist null.

ArgumentNullException

Der Ausdruck, der von apply erzeugt wurde, ist Null.

ArgumentNullException

Das Ergebnis von selector bei Umwandlung in DbExpression ist Null.

ArgumentException

source weist keinen Auflistungsergebnistyp auf.

ArgumentException

Der von apply erzeugte Ausdruck weist keinen Auflistungstyp auf.

Hinweise

Um mit SelectMany kompatibel zu sein, muss <typeparamref name="TSelector" /> von DbExpression abgeleitet werden oder ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften sein. Nachfolgend finden Sie Beispiele für unterstützte Typen für <typeparamref name="TSelector" /> : <code>source.SelectMany(x =&gt; x.Property("RelatedCollection"), (source, apply) =&gt; apply.Property("Name"))</code> ( <typeparamref name="TSelector" /> ist DbPropertyExpression ). <code>source.SelectMany(x =&gt; x.Property("RelatedCollection"), (source, apply) =&gt; new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })</code> (<typeparamref name="TSelector" /> ist ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften).

Siehe auch

Verweis

DbExpressionBuilder Klasse

SelectMany-Überladung

System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder-Namespace