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