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).