Freigeben über


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

  • 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 =&gt; o.Property("ID"), i =&gt; i.Property("ID"), (o, i) =&gt; o.Property("Name"))</code> ( <typeparamref name="TSelector" /> ist DbPropertyExpression ). <code>outer.Join(inner, o =&gt; o.Property("ID"), i =&gt; i.Property("ID"), (o, i) =&gt; 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

DbExpressionBuilder Klasse

Join-Überladung

System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder-Namespace