DbExpressionBuilder.Join Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>) |
Crea un nuovo DbJoinExpression oggetto che unisce i set specificati dalle espressioni esterne e interne, in 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 DbProjectExpression oggetto che proietta il selettore specificato sui set specificati dalle espressioni esterne e interne, unito a 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 DbJoinExpression oggetto che unisce i set specificati dalle espressioni esterne e interne, in 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 il modo in cui il valore della chiave esterna deve essere derivato da un elemento del set esterno.
- innerKey
- Func<DbExpression,DbExpression>
Metodo che specifica la modalità di derivazione del valore della chiave interna da un elemento del set interno.
Valori restituiti
Nuovo DbJoinExpression, con un DbExpressionKind di InnerJoin, che rappresenta l'operazione di inner join applicata ai set di input sinistro e destro in una condizione di join che confronta i valori di chiave esterna e interna per verificarne l'uguaglianza.
Eccezioni
outer, innerouterKey o innerKey è null.
oppure
L'espressione prodotta da outerKey o innerKey è null.
outer o inner non dispone di un tipo di risultato della raccolta.
oppure
Le espressioni prodotte da outerKey e innerKey non sono confrontabili per l'uguaglianza.
Si applica a
Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)
Crea un nuovo DbProjectExpression oggetto che proietta il selettore specificato sui set specificati dalle espressioni esterne e interne, unito a 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 il modo in cui il valore della chiave esterna deve essere derivato da un elemento del set esterno.
- innerKey
- Func<DbExpression,DbExpression>
Metodo che specifica la modalità di derivazione del valore della chiave interna da un elemento del set interno.
- selector
- Func<DbExpression,DbExpression,TSelector>
Metodo che specifica il modo in cui un elemento del set di risultati deve essere derivato dagli elementi dei set interni ed esterni. Questo metodo deve produrre un'istanza di un tipo compatibile con Join e può essere risolta in un oggetto DbExpression. I requisiti di compatibilità per TSelector sono descritti nelle note.
Valori restituiti
Nuovo DbProjectExpression con il selettore specificato come proiezione e un nuovo DbJoinExpression come input. L'input DbJoinExpression viene creato con un DbExpressionKind di InnerJoin, che rappresenta l'operazione di inner join applicata ai set di input sinistro e destro in una condizione di join che confronta i valori della chiave esterna e interna per verificarne l'uguaglianza.
Eccezioni
outer
outerKey, inner, innerKey o selector è Null.
oppure
L'espressione prodotta da outerKey o innerKey è null.
oppure
Il risultato di selector è Null dopo la conversione in DbExpression.
outer o inner non dispone di un tipo di risultato della raccolta.
oppure
Le espressioni prodotte da outerKey e innerKey non sono confrontabili per 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).