Freigeben über


DbExpressionBuilder.Join Methode

Definition

Überlädt

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

Erstellt eine neue DbJoinExpression, die die von den äußeren und inneren Ausdrücken angegebenen Mengen nach einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln verknüpft, wobei InnerJoin als DbExpressionKind verwendet wird.

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

Erstellt eine neue DbProjectExpression, die den angegebenen Selektor über die von den äußeren und inneren Ausdrücken angegebenen Mengen projiziert, verknüpft nach einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln, wobei InnerJoin als DbExpressionKind verwendet wird.

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

Erstellt eine neue DbJoinExpression, die die von den äußeren und inneren Ausdrücken angegebenen Mengen nach einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln verknüpft, wobei InnerJoin als DbExpressionKind verwendet wird.

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

Eine DbExpression, die das äußere Mengenargument angibt.

inner
DbExpression

Eine DbExpression, die das innere Mengenargument angibt.

outerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der Wert des äußeren Schlüssels von einem Element der äußeren Menge abgeleitet werden sollte.

innerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der Wert des inneren Schlüssels von einem Element der inneren Menge abgeleitet werden sollte.

Gibt zurück

Eine neue DbJoinExpression mit einer DbExpressionKind von InnerJoin, die den Vorgang der inneren Verknüpfung darstellt, der auf den linken und rechten Eingabeset unter einer Verknüpfungsbedingung, die die Werte des äußeren und inneren Schlüssels auf Gleichheit vergleicht, angewendet wird.

Ausnahmen

outer, inner, outerKey oder innerKey ist NULL.

- oder -

Der von outerKey oder innerKey erzeugte Ausdruck ist NULL.

outer bzw. inner weist keinen Sammlungsergebnistyp auf.

- oder -

Die von outerKey und innerKey erzeugten Ausdrücke sind nicht auf Gleichheit vergleichbar.

Gilt für:

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

Erstellt eine neue DbProjectExpression, die den angegebenen Selektor über die von den äußeren und inneren Ausdrücken angegebenen Mengen projiziert, verknüpft nach einer Gleichheitsbedingung zwischen den angegebenen äußeren und inneren Schlüsseln, wobei InnerJoin als DbExpressionKind verwendet wird.

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

Eine DbExpression, die das äußere Mengenargument angibt.

inner
DbExpression

Eine DbExpression, die das innere Mengenargument angibt.

outerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der Wert des äußeren Schlüssels von einem Element der äußeren Menge abgeleitet werden sollte.

innerKey
Func<DbExpression,DbExpression>

Eine Methode, die angibt, wie der Wert des inneren Schlüssels von einem Element der inneren Menge abgeleitet werden sollte.

selector
Func<DbExpression,DbExpression,TSelector>

Eine Methode, die angibt, wie ein Element des Resultsets von Elementen der inneren und äußeren Menge abgeleitet werden sollte. Diese Methode muss eine Instanz eines Typs produzieren, der mit „Join“ 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

Eine neue DbProjectExpression mit dem angegebenen Selektor als Projektion und eine neue DbJoinExpression als Eingabe. Die eingegebene DbJoinExpression wird mit einer DbExpressionKind von InnerJoin erstellt, die den Vorgang der inneren Verknüpfung darstellt, der auf den linken und rechten Eingabeset unter einer Verknüpfungsbedingung, die die Werte des äußeren und inneren Schlüssels auf Gleichheit vergleicht, angewendet wird.

Ausnahmen

outer, inner, outerKeyinnerKey oder selector ist NULL.

- oder -

Der von outerKey oder innerKey erzeugte Ausdruck ist NULL.

- oder -

Das Ergebnis von selector nach der Konvertierung in DbExpression ist NULL.

outer bzw. inner weist keinen Sammlungsergebnistyp auf.

- oder -

Die von outerKey und innerKey erzeugten Ausdrücke sind nicht auf Gleichheit vergleichbar.

- oder -

Das Ergebnis von selector ist nicht kompatibel mit SelectMany.

Hinweise

Um mit Join 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:

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: