DbExpressionBuilder.Join<TSelector>-Methode (DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression, TSelector>)
[Diese Seite bezieht sich auf Entity Framework Version 6. Die neueste Version ist als 'Entity Framework' NuGet-Paket verfügbar. Weitere Informationen zu Entity Framework finden Sie unter msdn.com/data/ef.]
Erstellt einen neuen DbProjectExpression, der die angegebene Auswahl über den vom äußeren und inneren Ausdruck angegebenen Mengen projiziert, die in einer Gleichheitsbedingung zwischen dem angegebenen äußeren und inneren Schlüssel verknüpft werden. Dabei wird InnerJoin als DbExpressionKind verwendet.
Namespace: System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder
Assembly: EntityFramework (in EntityFramework.dll)
Syntax
'Declaration
<ExtensionAttribute> _
Public Shared 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
'Usage
Dim outer As DbExpression
Dim inner As DbExpression
Dim outerKey As Func(Of DbExpression, DbExpression)
Dim innerKey As Func(Of DbExpression, DbExpression)
Dim selector As Func(Of DbExpression, DbExpression, TSelector)
Dim returnValue As DbProjectExpression
returnValue = outer.Join(inner, outerKey, _
innerKey, selector)
public static DbProjectExpression Join<TSelector>(
this DbExpression outer,
DbExpression inner,
Func<DbExpression, DbExpression> outerKey,
Func<DbExpression, DbExpression> innerKey,
Func<DbExpression, DbExpression, TSelector> selector
)
[ExtensionAttribute]
public:
generic<typename TSelector>
static DbProjectExpression^ Join(
DbExpression^ outer,
DbExpression^ inner,
Func<DbExpression^, DbExpression^>^ outerKey,
Func<DbExpression^, DbExpression^>^ innerKey,
Func<DbExpression^, DbExpression^, TSelector>^ selector
)
static member Join :
outer:DbExpression *
inner:DbExpression *
outerKey:Func<DbExpression, DbExpression> *
innerKey:Func<DbExpression, DbExpression> *
selector:Func<DbExpression, DbExpression, 'TSelector> -> DbProjectExpression
JScript does not support generic types and methods.
Typparameter
- TSelector
Der Typ des Selektors.
Parameter
- outer
Typ: System.Data.Entity.Core.Common.CommandTrees.DbExpression
Ein DbExpression, das das äußere Mengenargument angibt.
- inner
Typ: System.Data.Entity.Core.Common.CommandTrees.DbExpression
Ein DbExpression, das das innere Mengenargument angibt.
- outerKey
Typ: System.Func<DbExpression, DbExpression>
Eine Methode, die angibt, wie der Wert des äußeren Schlüssels von einem Element der äußeren Menge abgeleitet werden soll.
- innerKey
Typ: System.Func<DbExpression, DbExpression>
Eine Methode, die angibt, wie der Wert des inneren Schlüssels von einem Element der inneren Menge abgeleitet werden soll.
- selector
Typ: System.Func<DbExpression, DbExpression, TSelector>
Eine Methode, die angibt, wie ein Element des Resultsets von Elementen der inneren und äußeren Menge abgeleitet werden soll. Diese Methode muss eine Instanz eines Typs erzeugen, der mit Join kompatibel ist und in einen DbExpression aufgelöst werden kann. Kompatibilitätsanforderungen für TSelector werden in den Hinweisen erläutert.
Rückgabewert
Typ: System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression
Ein neues DbProjectExpression mit dem angegebenen Selektor als seiner Projektion und ein neues DbJoinExpression als Eingabe.Der Eingabe-DbJoinExpression wird mit einem DbExpressionKind von InnerJoin erstellt, der den Vorgang des inneren Join auf die linken und rechten Eingabesets angewendet darstellt, unter einer Joinbedingung, die die äußeren und inneren Schlüsselwerte auf Gleichheit überprüft.
Hinweis zur Verwendung
In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ DbExpression aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter https://msdn.microsoft.com/de-de/library/bb384936(v=vs.113) oder https://msdn.microsoft.com/de-de/library/bb383977(v=vs.113).
Ausnahmen
Ausnahme | Bedingung |
---|---|
ArgumentNullException | outer, inner, outerKey, innerKey oder selector ist Null. |
ArgumentException | outer oder inner weist keinen Auflistungsergebnistyp auf. |
ArgumentNullException | Der Ausdruck, der von outerKey oder innerKey erzeugt wurde, ist Null. |
ArgumentNullException | Das Ergebnis von selector nach Umwandlung in DbExpression ist Null. |
ArgumentException | Die Ausdrücke, die von outerKey und innerKey erzeugt wurden, sind hinsichtlich Gleichheit nicht kompatibel. |
ArgumentException | Das Ergebnis von selector ist nicht mit SelectMany kompatibel. |
Hinweise
Um mit Join kompatibel zu sein, muss TSelector von DbExpression abgeleitet werden oder ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften sein. Nachfolgend finden Sie Beispiele für unterstützte Typen für TSelector: <code>outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))</code> ( <typeparamref name="TSelector" /> ist DbPropertyExpression ). <code>outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })</code> (<typeparamref name="TSelector" /> ist ein anonymer Typ mit von DbExpression abgeleiteten Eigenschaften).
Siehe auch
Verweis
System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder-Namespace