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项,生成具有相应输入并应用列的行集合。 不包括计算 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。
例外
适用于
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
selector或apply为 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 派生属性的匿名类型)。