Freigeben über


DbExpressionBuilder.SelectMany Methode

Definition

Überlädt

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.

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.

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).

Gilt für: