共用方式為


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,這會從具有指定之輸入及套用繫結與 CrossApply 之 DbExpressionKind 的新 DbApplyExpression 中選取套用資料行。

例外狀況

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

指定輸入集的 DbExpression

apply
Func<DbExpression,DbExpression>

方法,表示要針對輸入集中每個成員進行一次評估的邏輯。

selector
Func<DbExpression,DbExpression,TSelector>

方法,指定結果集項目要如何依據給定輸入集和適用集項目來衍生。 這個方法所產生的型別執行個體,必須與 SelectMany 相容並且可以解析成 DbExpressionTSelector 的相容性需求詳述於<備註>。

傳回

新的 DbProjectExpression,這會從具有指定之輸入及套用繫結與 CrossApply 之 DbExpressionKind 的新 DbApplyExpression 中選取指定之選取器的結果。

例外狀況

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 衍生屬性的匿名類型) 。

適用於