Compartilhar via


DbExpressionBuilder.Join Método

Definição

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, outerKeyou innerKeyselector é 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).

Aplica-se a