DbExpressionBuilder.Join Método

Definição

Sobrecargas

Nome Description
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)

Cria um novo DbJoinExpression que une os conjuntos especificados pelas expressões externa e interna, em uma condição de igualdade entre as chaves externas e internas 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 externas e internas, unidos 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 um novo DbJoinExpression que une os conjuntos especificados pelas expressões externa e interna, em uma condição de igualdade entre as chaves externas e internas 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 do conjunto externo.

inner
DbExpression

Um DbExpression que especifica o argumento do conjunto interno.

outerKey
Func<DbExpression,DbExpression>

Um método que especifica como o valor da chave externa deve ser derivado de um elemento do conjunto externo.

innerKey
Func<DbExpression,DbExpression>

Um método que especifica como o valor da chave interna deve ser derivado de um elemento do conjunto interno.

Retornos

Um novo DbJoinExpression, com um DbExpressionKind InnerJoin, que representa a operação de junção interna aplicada aos conjuntos de entradas esquerdo e direito sob uma condição de junção que compara os valores de chave externa e interna para igualdade.

Exceções

outer outerKey, innerou 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 à 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 externas e internas, unidos 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 do conjunto externo.

inner
DbExpression

Um DbExpression que especifica o argumento do conjunto interno.

outerKey
Func<DbExpression,DbExpression>

Um método que especifica como o valor da chave externa deve ser derivado de um elemento do conjunto externo.

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 de elementos dos conjuntos interno e externo. Esse método deve produzir uma instância de um tipo compatível com o Join e pode ser resolvido em um DbExpression. Os requisitos de compatibilidade para TSelector os quais são descritos em comentários.

Retornos

Um novo DbProjectExpression com o seletor especificado como projeção e um novo DbJoinExpression como entrada. O DbJoinExpression de entrada é criado com um DbExpressionKind 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 de chave externa e interna para igualdade.

Exceções

outer, innerou outerKeyinnerKeyselector é nulo.

-ou-

A expressão produzida por outerKey ou innerKey é nula.

-ou-

O resultado é selector nulo após a conversão em 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 não selector é compatível com SelectMany.

Comentários

Para ser compatível com o Join, TSelector deve ser derivado de DbExpression, ou 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