DbExpressionBuilder.Join 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
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
, outerKey
innerKey
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).