Compartir a través de


DbExpressionBuilder.SelectMany Método

Definición

Sobrecargas

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Crea un nuevo objeto DbApplyExpression que evalúa la expresión apply definida una vez por cada elemento de un conjunto de entrada dado y genera una colección de filas con las columnas input y apply correspondientes. No se incluyen las filas para las que apply se evalúa como un conjunto vacío. A continuación, se crea un objeto DbProjectExpression que selecciona la columna apply de cada fila, generando la colección total de resultados apply.

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

Crea un nuevo objeto DbApplyExpression que evalúa la expresión apply definida una vez por cada elemento de un conjunto de entrada dado y genera una colección de filas con las columnas input y apply correspondientes. No se incluyen las filas para las que apply se evalúa como un conjunto vacío. A continuación, se crea un objeto DbProjectExpression que selecciona el selector especificado en cada fila, generando la colección de resultados total.

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Crea un nuevo objeto DbApplyExpression que evalúa la expresión apply definida una vez por cada elemento de un conjunto de entrada dado y genera una colección de filas con las columnas input y apply correspondientes. No se incluyen las filas para las que apply se evalúa como un conjunto vacío. A continuación, se crea un objeto DbProjectExpression que selecciona la columna apply de cada fila, generando la colección total 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

Una expresión DbExpression que especifica el conjunto de entrada.

apply
Func<DbExpression,DbExpression>

Método que representa la lógica que se va a evaluar una vez por cada miembro del conjunto de entrada.

Devoluciones

Un nuevo DbProjectExpression que selecciona la columna apply de una nueva DbApplyExpression con los enlaces de entrada y aplicación especificados y un DbExpressionKind de CrossApply.

Excepciones

source o apply es null.

o bien

La expresión producida por apply es un valor null.

source no tiene un tipo de resultado de la colección.

o bien

La expresión generada por apply no tiene un tipo colección.

Se aplica a

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

Crea un nuevo objeto DbApplyExpression que evalúa la expresión apply definida una vez por cada elemento de un conjunto de entrada dado y genera una colección de filas con las columnas input y apply correspondientes. No se incluyen las filas para las que apply se evalúa como un conjunto vacío. A continuación, se crea un objeto DbProjectExpression que selecciona el selector especificado en cada fila, generando la colección de resultados total.

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

Tipo de resultado del método de selector.

Parámetros

source
DbExpression

Una expresión DbExpression que especifica el conjunto de entrada.

apply
Func<DbExpression,DbExpression>

Método que representa la lógica que se va a evaluar una vez por cada miembro del conjunto de entrada.

selector
Func<DbExpression,DbExpression,TSelector>

Un método que especifica cómo se debe derivar un elemento del conjunto de resultados, dado un elemento de los conjuntos input y apply. Este método debe generar una instancia de un tipo que sea compatible con SelectMany y se pueda resolver en una expresión DbExpression. Los requisitos de compatibilidad de TSelector se describen en la sección Comentarios.

Devoluciones

Un nuevo DbProjectExpression que selecciona el resultado del selector dado de una nueva DbApplyExpression con los enlaces de entrada y aplicación especificados y un DbExpressionKind de CrossApply.

Excepciones

source, apply o selector es un valor null.

o bien

La expresión producida por apply es un valor null.

o bien

El resultado de selector es null en la conversión a DbExpression.

source no tiene un tipo de resultado de la colección.

o bien

La expresión generada por apply no tiene un tipo colección. no tiene un tipo de colección.

Comentarios

Para ser compatible con SelectMany, TSelector debe derivarse de DbExpression, o debe ser un tipo anónimo con propiedades derivadas de DbExpression. A continuación se muestran ejemplos de tipos admitidos para TSelector:

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

(TSelector es DbPropertyExpression).

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

(TSelector es un tipo anónimo con propiedades derivadas de DbExpression).

Se aplica a