DbExpressionBuilder.Join Methode

Definition

Überlädt

Name Beschreibung
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)

Erstellt eine neue DbJoinExpression , die durch die äußeren und inneren Ausdrücke angegebenen Sätze in einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln verknüpft, wobei InnerJoin als die DbExpressionKind.

Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)

Erstellt eine neue DbProjectExpression , die die angegebene Selektor über die durch die äußeren und inneren Ausdrücke angegebenen Mengen projiziert, die mit einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln verbunden sind, wobei InnerJoin als die DbExpressionKind.

Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)

Erstellt eine neue DbJoinExpression , die durch die äußeren und inneren Ausdrücke angegebenen Sätze in einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln verknüpft, wobei InnerJoin als die DbExpressionKind.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Data::Common::CommandTrees::DbJoinExpression ^ Join(System::Data::Common::CommandTrees::DbExpression ^ outer, System::Data::Common::CommandTrees::DbExpression ^ inner, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ outerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ innerKey);
public static System.Data.Common.CommandTrees.DbJoinExpression Join(this System.Data.Common.CommandTrees.DbExpression outer, System.Data.Common.CommandTrees.DbExpression inner, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> outerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> innerKey);
static member Join : System.Data.Common.CommandTrees.DbExpression * 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> -> System.Data.Common.CommandTrees.DbJoinExpression
<Extension()>
Public Function Join (outer As DbExpression, inner As DbExpression, outerKey As Func(Of DbExpression, DbExpression), innerKey As Func(Of DbExpression, DbExpression)) As DbJoinExpression

Parameter

outer
DbExpression

Ein DbExpression Wert, der das äußere Set-Argument angibt.

inner
DbExpression

Ein DbExpression Wert, der das innere Set-Argument angibt.

outerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der äußere Schlüsselwert von einem Element des äußeren Satzes abgeleitet werden soll.

innerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der innere Schlüsselwert von einem Element des inneren Satzes abgeleitet werden soll.

Gibt zurück

Ein neuer DbJoinExpression mit einer DbExpressionKind InnerJoin-Funktion, die den inneren Verknüpfungsvorgang darstellt, der auf die linke und rechte Eingabe angewendet wird, unter einer Verknüpfungsbedingung, die die äußeren und inneren Schlüsselwerte für Gleichheit vergleicht.

Ausnahmen

outer, inneroder outerKeyinnerKey ist NULL.

-oder-

Der ausdruck, der von outerKey oder innerKey ist null.

outer oder inner hat keinen Sammlungsergebnistyp.

-oder-

Die von outerKey der Gleichheit erzeugten und innerKey nicht vergleichbaren Ausdrücke.

Gilt für:

Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)

Erstellt eine neue DbProjectExpression , die die angegebene Selektor über die durch die äußeren und inneren Ausdrücke angegebenen Mengen projiziert, die mit einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln verbunden sind, wobei InnerJoin als die DbExpressionKind.

public:
generic <typename TSelector>
[System::Runtime::CompilerServices::Extension]
 static System::Data::Common::CommandTrees::DbProjectExpression ^ Join(System::Data::Common::CommandTrees::DbExpression ^ outer, System::Data::Common::CommandTrees::DbExpression ^ inner, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ outerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ innerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^, TSelector> ^ selector);
public static System.Data.Common.CommandTrees.DbProjectExpression Join<TSelector>(this System.Data.Common.CommandTrees.DbExpression outer, System.Data.Common.CommandTrees.DbExpression inner, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> outerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> innerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression,TSelector> selector);
static member Join : System.Data.Common.CommandTrees.DbExpression * 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> * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression, 'Selector> -> System.Data.Common.CommandTrees.DbProjectExpression
<Extension()>
Public Function Join(Of TSelector) (outer As DbExpression, inner As DbExpression, outerKey As Func(Of DbExpression, DbExpression), innerKey As Func(Of DbExpression, DbExpression), selector As Func(Of DbExpression, DbExpression, TSelector)) As DbProjectExpression

Typparameter

TSelector

Der Typ des selector.

Parameter

outer
DbExpression

Ein DbExpression Wert, der das äußere Set-Argument angibt.

inner
DbExpression

Ein DbExpression Wert, der das innere Set-Argument angibt.

outerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der äußere Schlüsselwert von einem Element des äußeren Satzes abgeleitet werden soll.

innerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der innere Schlüsselwert von einem Element des inneren Satzes abgeleitet werden soll.

selector
Func<DbExpression,DbExpression,TSelector>

Eine Methode, die angibt, wie ein Element des Resultsets von Elementen der inneren und äußeren Sätze abgeleitet werden soll. Diese Methode muss eine Instanz eines Typs erzeugen, der mit Join kompatibel ist und in eine DbExpressionaufgelöst werden kann. Kompatibilitätsanforderungen TSelector werden in den Anmerkungen beschrieben.

Gibt zurück

Ein neues DbProjectExpression-Steuerelement mit der angegebenen Auswahl als Projektion und einem neuen DbJoinExpression als Eingabe. Die Eingabe DbJoinExpression wird mit einem DbExpressionKind InnerJoin erstellt, das den inneren Verknüpfungsvorgang darstellt, der auf die linke und rechte Eingabe angewendet wird, unter einer Verknüpfungsbedingung, die die äußeren und inneren Schlüsselwerte für Gleichheit vergleicht.

Ausnahmen

outer, inner, outerKeyoder innerKeyselector ist NULL.

-oder-

Der ausdruck, der von outerKey oder innerKey ist null.

-oder-

Das Ergebnis ist selector null nach der Konvertierung in DbExpression.

outer oder inner hat keinen Sammlungsergebnistyp.

-oder-

Die von outerKey der Gleichheit erzeugten und innerKey nicht vergleichbaren Ausdrücke.

-oder-

Das Ergebnis ist selector nicht mit SelectMany kompatibel.

Hinweise

Um mit Join kompatibel zu sein, TSelector muss von DbExpressionoder muss ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften sein. Im Folgenden sind Beispiele für unterstützte Typen aufgeführt für TSelector:

outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))

(TSelector ist DbPropertyExpression).

outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })

(TSelector ist ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften).

Gilt für: