DbExpressionBuilder.SelectMany 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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>
一个方法,表示要针对每个输入集成员计算一次的逻辑。
返回
从指定输入、应用绑定和 CrossApply DbExpressionKind 的新 DbApplyExpression 中选定应用程序列的新 DbProjectExpression。
例外
适用于
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。
例外
source
、apply
或 selector
为 null。
- 或 -
由 apply
生成的表达式为 null。
- 或 -
在进行到 DbExpression 的转换时,selector
的结果 null。
注解
若要与 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 派生属性。