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
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
, outerKey
innerKey
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).