DbExpressionBuilder.Join Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>) |
Cria um novo DbJoinExpression que une os conjuntos especificados pelas expressões exterior e interior, sob uma condição de igualdade entre as chaves externa e interior 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 sobre os conjuntos especificados pelas expressões exterior e interior, unidos sob uma condição de igualdade entre as chaves externa e interna especificadas, usando InnerJoin como o DbExpressionKind. |
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)
Cria um novo DbJoinExpression que une os conjuntos especificados pelas expressões exterior e interior, sob uma condição de igualdade entre as chaves externa e interior 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
A DbExpression que especifica o argumento do conjunto exterior.
- inner
- DbExpression
A DbExpression que especifica o argumento do conjunto interno.
- outerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor da chave exterior deve ser derivado de um elemento do conjunto exterior.
- innerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor da chave interna deve ser derivado de um elemento do conjunto interno.
Devoluções
Uma nova DbJoinExpression, com um DbExpressionKind de InnerJoin, que representa a operação de junção interna aplicada aos conjuntos de entrada esquerda e direita sob uma condição de junção que compara os valores das chaves externas e internas para 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 para 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 sobre os conjuntos especificados pelas expressões exterior e interior, unidos sob uma condição de igualdade entre as chaves externa e interna 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 Genérico
- TSelector
O tipo do selector.
Parâmetros
- outer
- DbExpression
A DbExpression que especifica o argumento do conjunto exterior.
- inner
- DbExpression
A DbExpression que especifica o argumento do conjunto interno.
- outerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor da chave exterior deve ser derivado de um elemento do conjunto exterior.
- innerKey
- Func<DbExpression,DbExpression>
Um método que especifica como o valor da chave interna deve ser derivado de um elemento do conjunto interno.
- selector
- Func<DbExpression,DbExpression,TSelector>
Um método que especifica como um elemento do conjunto de resultados deve ser derivado a partir de elementos dos conjuntos interno e externo. Este método deve produzir uma instância de um tipo compatível com Join e que pode ser resolvida num DbExpression. Os requisitos de compatibilidade para TSelector são descritos em observações.
Devoluções
Um novo DbProjectExpression com o seletor especificado como projeção, e um novo DbJoinExpression como entrada. A entrada DbJoinExpression é criada com um DbExpressionKind de InnerJoin, que representa a operação de junção interna aplicada aos conjuntos de entrada esquerda e direita sob uma condição de junção que compara os valores das chaves exteriores e internas para igualdade.
Exceções
outer, inner, outerKey, innerKey ou selector é nulo.
-ou-
A expressão produzida por outerKey ou innerKey é nula.
-ou-
O resultado de selector é nulo após 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 para igualdade.
-ou-
O resultado de selector não é compatível com o SelectMany.
Observações
Para ser compatível com o Join, TSelector deve ser derivado de DbExpression, ou deve ser um tipo anónimo com propriedades derivadas do DbExpression. Seguem-se exemplos de tipos suportados 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).