Compartir a través de


DbExpressionBuilder.Join Método

Definición

Sobrecargas

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

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

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

Crea una nueva DbProjectExpression 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 especificadas de externas e internas, usando InnerJoin como DbExpressionKind.

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

Crea una nueva DbJoinExpression que combina los conjuntos especificados por las expresiones externas e internas, en una condición de igualdad entre las claves especificadas de externas e internas, usando 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

DbExpression que especifica el argumento del conjunto interno.

outerKey
Func<DbExpression,DbExpression>

Método que especifica el modo en que el valor de clave externa debe derivar de un elemento del conjunto externo.

innerKey
Func<DbExpression,DbExpression>

Método que especifica el modo en que el valor de clave interna debe derivar de un elemento del conjunto interno.

Devoluciones

Una nueva clase DbJoinExpression, con un DbExpressionKind 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 las claves externa e interna para ver si son iguales.

Excepciones

outer, inner, outerKey o innerKey es un valor 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

En las expresiones producidas por outerKey y innerKey no se puede realizar una comparación de igualdad.

Se aplica a

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

Crea una nueva DbProjectExpression 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 especificadas de externas e internas, usando 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 la propiedad selector.

Parámetros

outer
DbExpression

DbExpression que especifica el argumento del conjunto externo.

inner
DbExpression

DbExpression que especifica el argumento del conjunto interno.

outerKey
Func<DbExpression,DbExpression>

Método que especifica el modo en que el valor de clave externa debe derivar de un elemento del conjunto externo.

innerKey
Func<DbExpression,DbExpression>

Método que especifica el modo en que el valor de clave interna debe derivar de un elemento del conjunto interno.

selector
Func<DbExpression,DbExpression,TSelector>

Método que especifica el modo en que un elemento del conjunto de resultados debe derivar de los elementos de los conjuntos interno y externo. Este método debe generar una instancia de un tipo que sea compatible con Join y que pueda resolverse en una DbExpression. Los requisitos de compatibilidad de TSelector se describen en la sección Comentarios.

Devoluciones

Nueva DbProjectExpression con el selector especificado como su proyección, y una nueva DbJoinExpression como su entrada. La DbJoinExpression de entrada se crea con un DbExpressionKind 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 las claves externa e interna para ver si son iguales.

Excepciones

outer, inner, outerKeyinnerKey o selector es null.

o bien

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

o bien

El resultado de selector es null tras la conversión a DbExpression.

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

o bien

En las expresiones generadas por outerKey y innerKey no se puede realizar una comparación de 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