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
評估為空集合的資料列。 然後會建立 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 中選取套用資料行。
例外狀況
適用於
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 相容並且可以解析成 DbExpression。 TSelector
的相容性需求詳述於<備註>。
傳回
新的 DbProjectExpression,這會從具有指定之輸入及套用繫結與 CrossApply 之 DbExpressionKind 的新 DbApplyExpression 中選取指定之選取器的結果。
例外狀況
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 衍生屬性的匿名類型) 。