DbExpressionBuilder.Join Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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).