DbExpressionBuilder.SelectMany Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
SelectMany(DbExpression, Func<DbExpression,DbExpression>) |
Erstellt eine neue DbApplyExpression, die den angegebenen |
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>) |
Erstellt eine neue DbApplyExpression, die den angegebenen |
SelectMany(DbExpression, Func<DbExpression,DbExpression>)
Erstellt eine neue DbApplyExpression, die den angegebenen apply
-Ausdruck für jedes Element eines angegebenen Eingabesets einmal auswertet und eine Auflistung von Zeilen mit entsprechenden Eingabe- und apply-Spalten erzeugt. Zeilen, für die apply
als leerer Satz ausgewertet wird, werden nicht eingeschlossen. Eine DbProjectExpression wird dann erstellt, die die apply
-Spalte in jeder Zeile auswählt und die Gesamtauflistung der apply
-Ergebnisse erzeugt.
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
Parameter
- source
- DbExpression
Eine DbExpression, die das Eingabeset angibt.
- apply
- Func<DbExpression,DbExpression>
Eine Methode, die die Logik darstellt, die für jeden Member des Eingabesets einmal ausgewertet wird.
Gibt zurück
Ein neues DbProjectExpression, das die Spalte Übernehmen von einem neuen DbApplyExpression mit der angegebenen Eingabe auswählt und Bindungen anwendet und ein DbExpressionKind von CrossApply.
Ausnahmen
source
oder apply
ist NULL.
- oder -
Der von apply
erzeugte Ausdruck ist NULL.
source
weist keinen Auflistungsergebnistyp auf.
- oder -
Der von apply
erzeugte Ausdruck hat keinen Auflistungstyp.
Gilt für:
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)
Erstellt eine neue DbApplyExpression, die den angegebenen apply
-Ausdruck für jedes Element eines angegebenen Eingabesets einmal auswertet und eine Auflistung von Zeilen mit entsprechenden Eingabe- und apply-Spalten erzeugt. Zeilen, für die apply
als leerer Satz ausgewertet wird, werden nicht eingeschlossen. Eine DbProjectExpression wird dann erstellt, die den angegebenen selector
für jede Zeile auswählt und die Gesamtauflistung der Ergebnisse erzeugt.
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
Typparameter
- TSelector
Der Methodenergebnistyp von selector
.
Parameter
- source
- DbExpression
Eine DbExpression, die das Eingabeset angibt.
- apply
- Func<DbExpression,DbExpression>
Eine Methode, die die Logik darstellt, die für jeden Member des Eingabesets einmal ausgewertet wird.
- selector
- Func<DbExpression,DbExpression,TSelector>
Eine Methode, die angibt, wie ein Element des Resultsets bei Angabe eines Elements des Eingabe- und Anwendungssets abgeleitet werden soll. Diese Methode muss eine Instanz eines Typs erzeugen, der mit SelectMany kompatibel ist und in eine DbExpression aufgelöst werden kann. Anforderungen an die Kompatibilität für TSelector
werden in den Hinweisen beschrieben.
Gibt zurück
Ein neues DbProjectExpression, das das Ergebnis des angegebenen Selektors aus einem neuen DbApplyExpression mit der angegebenen Eingabe auswählt und Bindungen anwendet und ein DbExpressionKind von CrossApply.
Ausnahmen
source
, apply
oder selector
ist NULL.
- oder -
Der von apply
erzeugte Ausdruck ist NULL.
- oder -
Das Ergebnis von selector
ist bei Umwandlung in DbExpression NULL.
source
weist keinen Auflistungsergebnistyp auf.
- oder -
Der von apply
erzeugte Ausdruck hat keinen Auflistungstyp. weist keinen Auflistungstyp auf.
Hinweise
Um mit SelectMany kompatibel zu sein, TSelector
muss von DbExpressionabgeleitet werden oder ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften sein. Im folgenden sind Beispiele für unterstützte Typen für TSelector
:
source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))
(TSelector
ist DbPropertyExpression).
source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })
(TSelector
ist ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften).