DbExpressionBuilder.Join Método

Definición

Sobrecargas

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

Crea un nuevo DbJoinExpression objeto que combina los conjuntos especificados por las expresiones externas y internas, en una condición de igualdad entre las claves externas e internas especificadas, utilizando InnerJoin como DbExpressionKind.

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

Crea un nuevo DbProjectExpression objeto que proyecta el selector especificado sobre los conjuntos especificados por las expresiones externas e internas, combinadas en una condición de igualdad entre las claves externas e internas especificadas, utilizando InnerJoin como DbExpressionKind.

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

Crea un nuevo DbJoinExpression objeto que combina los conjuntos especificados por las expresiones externas y internas, en una condición de igualdad entre las claves externas e internas especificadas, utilizando InnerJoin como 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

Parámetros

outer
DbExpression

DbExpression que especifica el argumento del conjunto externo.

inner
DbExpression

que DbExpression especifica el argumento del conjunto interno.

outerKey
Func<DbExpression,DbExpression>

Método que especifica cómo se debe derivar el valor de clave externa de un elemento del conjunto externo.

innerKey
Func<DbExpression,DbExpression>

Método que especifica cómo se debe derivar el valor de clave interna de un elemento del conjunto interno.

Devoluciones

Nuevo DbJoinExpression, con un DbExpressionKind valor de InnerJoin, que representa la operación de combinación interna aplicada a los conjuntos de entrada izquierdo y derecho en una condición de combinación que compara los valores de clave externa e interna para la igualdad.

Excepciones

outer outerKey, innero innerKey es null.

O bien

La expresión generada por outerKey o innerKey es null.

outer o inner no tiene un tipo de resultado de colección.

O bien

Las expresiones generadas por outerKey y innerKey no son comparables para la igualdad.

Se aplica a

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

Crea un nuevo DbProjectExpression objeto que proyecta el selector especificado sobre los conjuntos especificados por las expresiones externas e internas, combinadas en una condición de igualdad entre las claves externas e internas especificadas, utilizando InnerJoin como 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

Parámetros de tipo

TSelector

Tipo de .selector

Parámetros

outer
DbExpression

DbExpression que especifica el argumento del conjunto externo.

inner
DbExpression

que DbExpression especifica el argumento del conjunto interno.

outerKey
Func<DbExpression,DbExpression>

Método que especifica cómo se debe derivar el valor de clave externa de un elemento del conjunto externo.

innerKey
Func<DbExpression,DbExpression>

Método que especifica cómo se debe derivar el valor de clave interna de un elemento del conjunto interno.

selector
Func<DbExpression,DbExpression,TSelector>

Método que especifica cómo se debe derivar un elemento del conjunto de resultados de los elementos de los conjuntos internos y externos. Este método debe generar una instancia de un tipo compatible con Join y se puede resolver en .DbExpression Los requisitos de compatibilidad para TSelector se describen en los comentarios.

Devoluciones

Nuevo DbProjectExpression con el selector especificado como proyección y un nuevo DbJoinExpression como entrada. La entrada DbJoinExpression se crea con un DbExpressionKind valor de InnerJoin, que representa la operación de combinación interna aplicada a los conjuntos de entrada izquierdo y derecho bajo una condición de combinación que compara los valores de clave externa e interna para la igualdad.

Excepciones

outer, inner, outerKeyo innerKeyselector es NULL.

O bien

La expresión generada por outerKey o innerKey es null.

O bien

El resultado de es NULL después de selector la conversión a DbExpression.

outer o inner no tiene un tipo de resultado de colección.

O bien

Las expresiones generadas por outerKey y innerKey no son comparables para la igualdad.

O bien

El resultado de selector no es compatible con SelectMany.

Comentarios

Para ser compatible con Join, TSelector debe derivarse de DbExpression, o debe ser un tipo anónimo con propiedades derivadas de DbExpression. A continuación se muestran ejemplos de tipos admitidos para TSelector:

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

(TSelector es DbPropertyExpression).

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

(TSelector es un tipo anónimo con propiedades derivadas de DbExpression).

Se aplica a