Compartilhar via


DbExpressionBuilder.SelectMany Método

Definição

Sobrecargas

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Cria uma nova DbApplyExpression que avalia a expressão apply fornecida uma vez para cada elemento de um determinado conjunto de entrada, produzindo um conjunto de linhas com colunas input e apply correspondentes. Linhas para as quais apply é avaliado para um conjunto vazio não são incluídas. Um DbProjectExpression é criado, o qual seleciona a coluna apply de cada linha, produzindo a coleção geral de resultados apply.

SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)

Cria uma nova DbApplyExpression que avalia a expressão apply fornecida uma vez para cada elemento de um determinado conjunto de entrada, produzindo um conjunto de linhas com colunas input e apply correspondentes. Linhas para as quais apply é avaliado para um conjunto vazio não são incluídas. Um DbProjectExpression é então criado, o qual seleciona o selector especificado sobre cada linha, produzindo a coleção geral de resultados.

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Cria uma nova DbApplyExpression que avalia a expressão apply fornecida uma vez para cada elemento de um determinado conjunto de entrada, produzindo um conjunto de linhas com colunas input e apply correspondentes. Linhas para as quais apply é avaliado para um conjunto vazio não são incluídas. Um DbProjectExpression é criado, o qual seleciona a coluna apply de cada linha, produzindo a coleção geral de resultados apply.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Data::Common::CommandTrees::DbProjectExpression ^ SelectMany(System::Data::Common::CommandTrees::DbExpression ^ source, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ apply);
public static System.Data.Common.CommandTrees.DbProjectExpression SelectMany (this System.Data.Common.CommandTrees.DbExpression source, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> apply);
static member SelectMany : System.Data.Common.CommandTrees.DbExpression * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression> -> System.Data.Common.CommandTrees.DbProjectExpression
<Extension()>
Public Function SelectMany (source As DbExpression, apply As Func(Of DbExpression, DbExpression)) As DbProjectExpression

Parâmetros

source
DbExpression

Um DbExpression que especifica o conjunto de entrada.

apply
Func<DbExpression,DbExpression>

Um método que representa a lógica a ser avaliada uma vez para cada membro do conjunto de entrada.

Retornos

Uma nova DbProjectExpression que seleciona a coluna apply de uma nova DbApplyExpression com as associações input e apply especificadas e uma DbExpressionKind de CrossApply.

Exceções

source ou apply é nulo.

- ou -

A expressão produzida por apply é nula.

source não tem um tipo de resultado de coleção.

- ou -

A expressão produzida por apply não tem um tipo de coleção.

Aplica-se a

SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)

Cria uma nova DbApplyExpression que avalia a expressão apply fornecida uma vez para cada elemento de um determinado conjunto de entrada, produzindo um conjunto de linhas com colunas input e apply correspondentes. Linhas para as quais apply é avaliado para um conjunto vazio não são incluídas. Um DbProjectExpression é então criado, o qual seleciona o selector especificado sobre cada linha, produzindo a coleção geral de resultados.

public:
generic <typename TSelector>
[System::Runtime::CompilerServices::Extension]
 static System::Data::Common::CommandTrees::DbProjectExpression ^ SelectMany(System::Data::Common::CommandTrees::DbExpression ^ source, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ apply, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^, TSelector> ^ selector);
public static System.Data.Common.CommandTrees.DbProjectExpression SelectMany<TSelector> (this System.Data.Common.CommandTrees.DbExpression source, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> apply, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression,TSelector> selector);
static member SelectMany : 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 SelectMany(Of TSelector) (source As DbExpression, apply As Func(Of DbExpression, DbExpression), selector As Func(Of DbExpression, DbExpression, TSelector)) As DbProjectExpression

Parâmetros de tipo

TSelector

O tipo de resultado do método de selector.

Parâmetros

source
DbExpression

Um DbExpression que especifica o conjunto de entrada.

apply
Func<DbExpression,DbExpression>

Um método que representa a lógica a ser avaliada uma vez para cada membro do conjunto de entrada.

selector
Func<DbExpression,DbExpression,TSelector>

Um método que especifica como um elemento do conjunto de resultados deve ser derivado de um elemento fornecido dos conjuntos input e apply. Este método deve produzir uma instância de um tipo compatível com SelectMany e pode ser resolvido em um DbExpression. Requisitos de compatibilidade para TSelector são descritos em comentários.

Retornos

Uma nova DbProjectExpression que seleciona o resultado do seletor fornecido de uma nova DbApplyExpression com as associações input e apply especificadas e uma DbExpressionKind de CrossApply.

Exceções

source, apply ou selector é nulo.

- ou -

A expressão produzida por apply é nula.

- ou -

O resultado de selector é nulo na conversão para DbExpression.

source não tem um tipo de resultado de coleção.

- ou -

A expressão produzida por apply não tem um tipo de coleção. não tem um tipo de coleção.

Comentários

Para ser compatível com SelectMany, TSelector deve ser derivado de DbExpressionou ser um tipo anônimo com propriedades derivadas de DbExpression. Veja a seguir exemplos de tipos com suporte para TSelector:

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))  

(TSelector é DbPropertyExpression).

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })  

(TSelector é um tipo anônimo com propriedades derivadas de DbExpression).

Aplica-se a