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
- source
Typ: System.Data.Entity.Core.Common.CommandTrees.DbExpression
Ein DbExpression, das das Eingabeset angibt.
- apply
Typ: System.Func<DbExpression, DbExpression>
Eine Methode, die die Logik darstellt, die für jeden Member des Eingabesets einmal ausgewertet wird.
- 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 => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))</code> ( <typeparamref name="TSelector" /> ist DbPropertyExpression ). <code>source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => 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
System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder-Namespace