DbExpressionBuilder.SelectMany Метод

Определение

Перегрузки

Имя Описание
SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Создает новый DbApplyExpression объект, который вычисляет заданное apply выражение один раз для каждого элемента заданного входного набора, создавая коллекцию строк с соответствующими входными данными и применяя столбцы. Строки, для которых apply вычисляется пустой набор, не включаются. Затем создается объект DbProjectExpression , который выбирает apply столбец из каждой apply строки, создавая общую коллекцию результатов.

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

Создает новый DbApplyExpression объект, который вычисляет заданное apply выражение один раз для каждого элемента заданного входного набора, создавая коллекцию строк с соответствующими входными данными и применяя столбцы. Строки, для которых apply вычисляется пустой набор, не включаются. Затем создается объект DbProjectExpression , который выбирает указанный selector по каждой строке, создавая общую коллекцию результатов.

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

Применяется к