Condividi tramite


Metodo DbExpressionBuilder.Join<TSelector> (DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression, TSelector>)

[Questa pagina è specifica della versione 6 di Entity Framework. La versione più recente è disponibile come pacchetto NuGet per "Entity Framework". Per ulteriori informazioni su Entity Framework, vedere la pagina msdn.com/data/ef.]

Crea un nuovo oggetto DbProjectExpression che proietta il selettore specificato sui set specificati dalle espressioni esterne e interne, unite in join in base a una condizione di uguaglianza tra le chiavi interne ed esterne specificate, utilizzando InnerJoin come DbExpressionKind.

Spazio dei nomi:  System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder
Assembly:  EntityFramework (in EntityFramework.dll)

Sintassi

'Dichiarazione
<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
'Utilizzo
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.

Parametri di tipo

  • TSelector
    Tipo del selettore.

Parametri

  • selector
    Tipo: System.Func<DbExpression, DbExpression, TSelector>
    Metodo che specifica come derivare un elemento del set di risultati dagli elementi dei set interni ed esterni. Questo metodo deve produrre un'istanza di un tipo compatibile con Join che possa essere risolta in un oggetto DbExpression. Requisiti di compatibilità per TSelector come descritto nelle osservazioni.

Valore restituito

Tipo: System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression
Nuovo elemento DbProjectExpression con il selettore specificato come relativa proiezione e un nuovo DbJoinExpression come relativo input.L'elemento DbJoinExpression di input viene creato con un oggetto DbExpressionKind di InnerJoin, che rappresenta l'operazione di inner join applicata ai set di input a sinistra e a destra in base a una condizione di join che confronta i valori delle chiavi esterne e interne ai fini dell'uguaglianza.

Nota sull'utilizzo

In Visual Basic e C# è possibile chiamare questo metodo come metodo di istanza su qualsiasi oggetto di tipo DbExpression. Per chiamare il metodo usando la sintassi del metodo di istanza, omettere il primo parametro. Per altre informazioni, vedere https://msdn.microsoft.com/it-it/library/bb384936(v=vs.113) o https://msdn.microsoft.com/it-it/library/bb383977(v=vs.113).

Eccezioni

Eccezione Condizione
ArgumentNullException

outer, inner, outerKey, innerKey o selector è Null.

ArgumentException

outer o inner non dispone di un tipo di risultato della raccolta.

ArgumentNullException

L'espressione generata da outerKey o innerKey è Null.

ArgumentNullException

Il risultato di selector è Null dopo la conversione all'oggetto DbExpression.

ArgumentException

Le espressioni generate da outerKey e innerKey non sono compatibili in termini di uguaglianza.

ArgumentException

Il risultato di selector non è compatibile con SelectMany.

Note

Per essere compatibile con Join, TSelector deve derivare da DbExpression o deve essere un tipo anonimo con le proprietà derivate da DbExpression. Di seguito sono riportati esempi di tipi supportati per 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" /> is 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" /> è un tipo anonimo con le proprietà derivate da DbExpression).

Vedere anche

Riferimento

DbExpressionBuilder Classe

Overload Join

Spazio dei nomi System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder