DbExpressionBuilder.SelectMany 方法

定义

重载

名称 说明
SelectMany(DbExpression, Func<DbExpression,DbExpression>)

为给定输入集的每个元素创建一次计算给定DbApplyExpression表达式的新apply项,生成具有相应输入并应用列的行集合。 不包括计算 apply 结果为空集的行。 然后创建 A 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 结果为空集的行。 然后创建 A 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

指定输入集的 A DbExpression

apply
Func<DbExpression,DbExpression>

一个方法,表示为输入集的每个成员计算一次的逻辑。

返回

从具有指定输入的新 DbApplyExpression 中选择应用列并应用绑定和 DbExpressionKind CrossApply 的新 DbProjectExpression。

例外

sourceapply 为 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

指定输入集的 A DbExpression

apply
Func<DbExpression,DbExpression>

一个方法,表示为输入集的每个成员计算一次的逻辑。

selector
Func<DbExpression,DbExpression,TSelector>

一个方法,指定在给定输入和应用集的元素的情况下,如何派生结果集的元素。 此方法必须生成与 SelectMany 兼容的类型的实例,并且可以解析为 。DbExpression 备注中介绍了兼容性 TSelector 要求。

返回

从具有指定输入的新 DbApplyExpression 中选择给定选择器的结果并应用绑定和 DbExpressionKind CrossApply 的新 DbProjectExpression。

例外

source selectorapply为 null。

-或-

生成的 apply 表达式为 null。

-或-

转换为 DbExpression 时的结果 selector 为 null。

source 没有集合结果类型。

-或-

apply 其生成的表达式没有集合类型。 没有集合类型。

注解

若要与 SelectMany 兼容, TSelector 必须派生自 DbExpression,或者必须是具有 DbExpression 派生属性的匿名类型。 下面是支持的类型的 TSelector示例:

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))

TSelectorDbPropertyExpression)。

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })

TSelector 是具有 DbExpression 派生属性的匿名类型)。

适用于