Condividi tramite


DbExpressionBuilder.Join Metodo

Definizione

Overload

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

Crea un nuovo oggetto DbJoinExpression che unisce in join i set specificati dalle espressioni esterne e interne, in base a una condizione di uguaglianza tra le chiavi esterne e interne specificate, usando InnerJoin come DbExpressionKind.

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

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

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

Crea un nuovo oggetto DbJoinExpression che unisce in join i set specificati dalle espressioni esterne e interne, in base a una condizione di uguaglianza tra le chiavi esterne e interne specificate, usando InnerJoin come DbExpressionKind.

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

Parametri

outer
DbExpression

Oggetto DbExpression che specifica l'argomento del set esterno.

inner
DbExpression

Oggetto DbExpression che specifica l'argomento del set interno.

outerKey
Func<DbExpression,DbExpression>

Metodo che specifica come derivare il valore esterno della chiave da un elemento del set esterno.

innerKey
Func<DbExpression,DbExpression>

Metodo che specifica come derivare il valore interno della chiave da un elemento del set interno.

Restituisce

Nuovo oggetto DbJoinExpression, con un'enumerazione DbExpressionKind di InnerJoin, che rappresenta l'operazione di inner join applicata ai set di input a sinistra e a destra in una condizione di join che confronta i valori di chiave esterni e interni per verificarne l'uguaglianza.

Eccezioni

outer, inner, outerKey o innerKey è Null.

-oppure-

L'espressione generata da outerKey o innerKey è null.

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

-oppure-

Le espressioni generate da outerKey e innerKey non possono essere confrontate per verificarne l'uguaglianza.

Si applica a

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

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

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

Parametri di tipo

TSelector

Tipo di selector.

Parametri

outer
DbExpression

Oggetto DbExpression che specifica l'argomento del set esterno.

inner
DbExpression

Oggetto DbExpression che specifica l'argomento del set interno.

outerKey
Func<DbExpression,DbExpression>

Metodo che specifica come derivare il valore esterno della chiave da un elemento del set esterno.

innerKey
Func<DbExpression,DbExpression>

Metodo che specifica come derivare il valore interno della chiave da un elemento del set interno.

selector
Func<DbExpression,DbExpression,TSelector>

Metodo che specifica come derivare un elemento del set ottenuto da elementi di set interni ed esterni. Questo metodo deve generare un'istanza di un tipo che sia compatibile con Join e risolvibile in un oggetto DbExpression. I requisiti di compatibilità per TSelector sono descritti nelle note.

Restituisce

Nuovo oggetto DbProjectExpression con il selettore specificato come proiezione e nuovo oggetto DbJoinExpression come input. L'oggetto di input DbJoinExpression viene creato con un DbExpressionKind di InnerJoin, che rappresenta l'operazione di inner join applicata ai set di input sinistri e destri in una condizione di join che confronta i valori di chiave esterni e interni per verificarne l'uguaglianza.

Eccezioni

outer, inner, outerKeyo innerKeyselector è Null.

-oppure-

L'espressione generata da outerKey o innerKey è null.

-oppure-

Il risultato di selector è null dopo la conversione in DbExpression.

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

-oppure-

Le espressioni generate da outerKey e innerKey non possono essere confrontate per verificarne l'uguaglianza.

-oppure-

Il risultato di selector non è compatibile con SelectMany.

Commenti

Per essere compatibile con Join, TSelector deve essere derivato da DbExpressiono deve essere un tipo anonimo con proprietà derivate da DbExpression. Di seguito sono riportati esempi di tipi supportati per TSelector:

outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))  

(TSelector è DbPropertyExpression).

outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })  

(TSelector è un tipo anonimo con proprietà derivate da DbExpression).

Si applica a