DbExpressionBuilder.SelectMany Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| SelectMany(DbExpression, Func<DbExpression,DbExpression>) |
Crea un nuevo objeto DbApplyExpression que evalúa la expresión |
| SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>) |
Crea un nuevo objeto DbApplyExpression que evalúa la expresión |
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).