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
- outer
Tipo: System.Data.Entity.Core.Common.CommandTrees.DbExpression
Oggetto DbExpression che specifica l'argomento set esterno.
- inner
Tipo: System.Data.Entity.Core.Common.CommandTrees.DbExpression
Oggetto DbExpression che specifica l'argomento set interno.
- outerKey
Tipo: System.Func<DbExpression, DbExpression>
Metodo che specifica come derivare il valore della chiave esterna da un elemento del set esterno.
- innerKey
Tipo: System.Func<DbExpression, DbExpression>
Metodo che specifica come derivare il valore della chiave interna da un elemento del set interno.
- 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 => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))</code> ( <typeparamref name="TSelector" /> is 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" /> è un tipo anonimo con le proprietà derivate da DbExpression).
Vedere anche
Riferimento
Spazio dei nomi System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder