DbExpressionBuilder.SelectMany 方法

定义

重载

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

创建一个新的 DbApplyExpression,它为每个给定输入集元素计算一次指定的 apply 表达式,并生成具有相应 input 和 apply 列的行集合。 不包括 apply 计算结果为空集的行。 然后创建了 DbProjectExpression,它从每一行选择 apply 列,从而生成整个apply 结果集。

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

创建一个新的 DbApplyExpression,它为每个给定输入集元素计算一次指定的 apply 表达式,并生成具有相应 input 和 apply 列的行集合。 不包括 apply 计算结果为空集的行。 然后创建了 DbProjectExpression,它在每一行上选择指定的 selector,从而生成整个结果集。

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>

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

返回

从指定输入、应用绑定和 CrossApply DbExpressionKind 的新 DbApplyExpression 中选定应用程序列的新 DbProjectExpression。

例外

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

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

返回

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

例外

sourceapplyselector 为 null。

- 或 -

apply 生成的表达式为 null。

- 或 -

在进行到 DbExpression 的转换时,selector 的结果 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 派生属性。

适用于