DbExpressionBuilder.SelectMany Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
SelectMany(DbExpression, Func<DbExpression,DbExpression>) |
Создает новое выражение DbApplyExpression, которое вычисляет указанное выражение |
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>) |
Создает новое выражение DbApplyExpression, которое вычисляет указанное выражение |
SelectMany(DbExpression, Func<DbExpression,DbExpression>)
Создает новое выражение DbApplyExpression, которое вычисляет указанное выражение apply
один раз для каждого из элементов входного набора, создавая на выходе коллекцию строк с соответствующими столбцами input и apply. Строки, для которых результатом выражения apply
стало пустое множество, не включаются. Затем создается выражение DbProjectExpression, выбирающее столбец apply
из каждой строки, формируя таким образом коллекцию результатов 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
Параметры
- source
- DbExpression
Объект DbExpression, задающий входной набор.
- apply
- Func<DbExpression,DbExpression>
Метод, представляющий логику вычисления, которую необходимо применить для каждого из элементов входного набора.
Возвращаемое значение
Новое DbProjectExpression, который выбирает столбец применения из нового DbApplyExpression с определенным входом и привязками применения и DbExpressionKind CrossApply.
Исключения
source
или apply
равно null.
-или-
Выражение, созданное apply
, имеет значение null.
Результат source
не относится к типу коллекции.
-или-
Выражение, созданное apply
, не может быть коллекцией.
Применяется к
SelectMany<TSelector>(DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression,TSelector>)
Создает новое выражение DbApplyExpression, которое вычисляет указанное выражение apply
один раз для каждого из элементов входного набора, создавая на выходе коллекцию строк с соответствующими столбцами input и apply. Строки, для которых результатом выражения apply
стало пустое множество, не включаются. Затем создается выражение DbProjectExpression, выбирающее указанный selector
из каждой строки, формируя таким образом коллекцию результатов.
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
Параметры типа
- TSelector
Тип результата метода selector
.
Параметры
- source
- DbExpression
Объект DbExpression, задающий входной набор.
- apply
- Func<DbExpression,DbExpression>
Метод, представляющий логику вычисления, которую необходимо применить для каждого из элементов входного набора.
- selector
- Func<DbExpression,DbExpression,TSelector>
Метод, задающий способ получения элемента результирующего набора из элемента входного набора и набора apply. Этот метод должен создавать экземпляр типа, совместимого с SelectMany, и который можно разрешить в объект DbExpression. Требования к совместимости TSelector
приведены в примечаниях.
Возвращаемое значение
Новое DbProjectExpression, который выбирает результат из данного селектора из нового DbApplyExpression с определенным входом и привязками применения и DbExpressionKind CrossApply.
Исключения
Для параметров source
, apply
или selector
задано значение null.
-или-
Выражение, созданное apply
, имеет значение null.
-или-
Результат операции selector
при преобразовании в DbExpression имеет значение null.
Результат source
не относится к типу коллекции.
-или-
Выражение, созданное apply
, не может быть коллекцией. не относится к типу коллекции.
Комментарии
Чтобы обеспечить совместимость с SelectMany, TSelector
должен быть производным от или быть анонимным типом со свойствами, производными от DbExpressionDbExpression. Ниже приведены примеры поддерживаемых типов для 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
— анонимный тип со свойствами, производными от DbExpression).