DbExpressionBuilder.Join Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>) |
Cria uma nova DbJoinExpression que une os conjuntos especificados pelas expressões inner e outer, reunidas em uma condição de igualdade entre as chaves inner e outer especificadas usando InnerJoin como o DbExpressionKind. |
Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>) |
Cria um novo DbProjectExpression que projeta o seletor especificado nos conjuntos especificados pelas expressões externas e internas, reunidas em uma condição de igualdade entre as chaves externas e internas especificadas usando InnerJoin como o DbExpressionKind. |
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)
Cria uma nova DbJoinExpression que une os conjuntos especificados pelas expressões inner e outer, reunidas em uma condição de igualdade entre as chaves inner e outer especificadas usando InnerJoin como o 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
Um DbExpression que especifica o argumento de conjunto externo.
- inner
- DbExpression
Um DbExpression que especifica o argumento de conjunto interno.
- outerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor de chave externo deve ser derivado de um elemento da coleção externa.
- innerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor de chave interno deve ser derivado de um elemento da coleção interna.
Retornos
A entrada DbJoinExpression é criada com um DbExpressionKind de InnerJoin, que representa a operação de junção interna aplicada aos conjuntos de entrada left e right em uma condição de junção que compara os valores de chave outer e inner com relação à igualdade.
Exceções
outer
, inner
, outerKey
ou innerKey
é nulo.
- ou -
A expressão produzida por outerKey
ou innerKey
é nula.
outer
ou inner
não tem um tipo de resultado de coleção.
- ou -
As expressões produzidas por outerKey
e innerKey
não são comparáveis quanto à igualdade.
Aplica-se a
Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)
Cria um novo DbProjectExpression que projeta o seletor especificado nos conjuntos especificados pelas expressões externas e internas, reunidas em uma condição de igualdade entre as chaves externas e internas especificadas usando InnerJoin como o 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
O tipo do selector
.
Parâmetros
- outer
- DbExpression
Um DbExpression que especifica o argumento de conjunto externo.
- inner
- DbExpression
Um DbExpression que especifica o argumento de conjunto interno.
- outerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor de chave externo deve ser derivado de um elemento da coleção externa.
- innerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor de chave interno deve ser derivado de um elemento da coleção interna.
- selector
- Func<DbExpression,DbExpression,TSelector>
Um método que especifica como um elemento do conjunto de resultados deve ser derivado de elementos dos conjuntos interno e externo. Esse método deve produzir uma instância de um tipo compatível com Join e pode ser resolvido em um DbExpression. Requisitos de compatibilidade para TSelector
são descritos em comentários.
Retornos
Um novo DbProjectExpression com o seletor especificado como sua projeção e uma novo DbJoinExpression como sua entrada. A entrada DbJoinExpression é criada com um DbExpressionKind de InnerJoin, que representa a operação de junção interna aplicada aos conjuntos de entrada esquerdo e direito em uma condição de junção que compara os valores de chave externo e interno com relação à igualdade.
Exceções
outer
, inner
, outerKey
ou innerKey
selector
é nulo.
- ou -
A expressão produzida por outerKey
ou innerKey
é nula.
- ou -
O resultado de selector
é nulo após a conversão para DbExpression.
outer
ou inner
não tem um tipo de resultado de coleção.
- ou -
As expressões produzidas por outerKey
e innerKey
não são comparáveis quanto à igualdade.
- ou -
O resultado de selector
não é compatível com SelectMany.
Comentários
Para ser compatível com Join, TSelector
deve ser derivado de DbExpressionou deve ser um tipo anônimo com propriedades derivadas de DbExpression. Veja a seguir exemplos de tipos com suporte para TSelector
:
outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))
(TSelector
é DbPropertyExpression).
outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })
(TSelector
é um tipo anônimo com propriedades derivadas de DbExpression).