DbExpressionBuilder.Join 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>) |
使用 InnerJoin 作為 DbExpressionKind,建立新的 DbJoinExpression,其會以指定的內外部索引鍵間的相等條件,來結合內外部運算式所指定的集合。 |
Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>) |
使用 InnerJoin 作為 DbExpressionKind,建立新的 DbProjectExpression,其會將指定的選擇器投射在內外部運算式所指定的集合,這裡的內外部運算式是依據指定內外部索引鍵間的相等條件而聯結。 |
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)
使用 InnerJoin 作為 DbExpressionKind,建立新的 DbJoinExpression,其會以指定的內外部索引鍵間的相等條件,來結合內外部運算式所指定的集合。
public:
[System::Runtime::CompilerServices::Extension]
static System::Data::Common::CommandTrees::DbJoinExpression ^ Join(System::Data::Common::CommandTrees::DbExpression ^ outer, System::Data::Common::CommandTrees::DbExpression ^ inner, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ outerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ innerKey);
public static System.Data.Common.CommandTrees.DbJoinExpression Join (this System.Data.Common.CommandTrees.DbExpression outer, System.Data.Common.CommandTrees.DbExpression inner, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> outerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> innerKey);
static member Join : System.Data.Common.CommandTrees.DbExpression * 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> -> System.Data.Common.CommandTrees.DbJoinExpression
<Extension()>
Public Function Join (outer As DbExpression, inner As DbExpression, outerKey As Func(Of DbExpression, DbExpression), innerKey As Func(Of DbExpression, DbExpression)) As DbJoinExpression
參數
- outer
- DbExpression
DbExpression,可指定外部集引數。
- inner
- DbExpression
DbExpression,可指定內部集引數。
- outerKey
- Func<DbExpression,DbExpression>
此方法可指定外部索引鍵值該如何自外部集合的項目衍生。
- innerKey
- Func<DbExpression,DbExpression>
此方法可指定內部索引鍵值該如何自內部集合的項目衍生。
傳回
新的 DbJoinExpression,含有 InnerJoin 的DbExpressionKind,表示套用至聯結條件下左右方輸入集的內部聯結作業,其中該聯結條件會比較外部和內部索引鍵值是否相等。
例外狀況
outer
、inner
、outerKey
或 innerKey
為 null。
-或-
outerKey
或 innerKey
所產生的運算式為 null。
適用於
Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)
使用 InnerJoin 作為 DbExpressionKind,建立新的 DbProjectExpression,其會將指定的選擇器投射在內外部運算式所指定的集合,這裡的內外部運算式是依據指定內外部索引鍵間的相等條件而聯結。
public:
generic <typename TSelector>
[System::Runtime::CompilerServices::Extension]
static System::Data::Common::CommandTrees::DbProjectExpression ^ Join(System::Data::Common::CommandTrees::DbExpression ^ outer, System::Data::Common::CommandTrees::DbExpression ^ inner, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ outerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ innerKey, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^, TSelector> ^ selector);
public static System.Data.Common.CommandTrees.DbProjectExpression Join<TSelector> (this System.Data.Common.CommandTrees.DbExpression outer, System.Data.Common.CommandTrees.DbExpression inner, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> outerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> innerKey, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression,TSelector> selector);
static member Join : System.Data.Common.CommandTrees.DbExpression * 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> * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression, 'Selector> -> System.Data.Common.CommandTrees.DbProjectExpression
<Extension()>
Public Function Join(Of TSelector) (outer As DbExpression, inner As DbExpression, outerKey As Func(Of DbExpression, DbExpression), innerKey As Func(Of DbExpression, DbExpression), selector As Func(Of DbExpression, DbExpression, TSelector)) As DbProjectExpression
類型參數
- TSelector
selector
的類型。
參數
- outer
- DbExpression
DbExpression,可指定外部集引數。
- inner
- DbExpression
DbExpression,可指定內部集引數。
- outerKey
- Func<DbExpression,DbExpression>
此方法可指定外部索引鍵值該如何自外部集合的項目衍生。
- innerKey
- Func<DbExpression,DbExpression>
此方法可指定內部索引鍵值該如何自內部集合的項目衍生。
- selector
- Func<DbExpression,DbExpression,TSelector>
此方法指定結果集的項目該如何自內外部集合的項目衍生。 此方法所產生的執行個體類型必須與聯結相容,且可解析為 DbExpression。 TSelector
的相容性需求詳述於<備註>。
傳回
新的 DbProjectExpression,將指定的選取器作為其投影,並將新的 DbJoinExpression 作為其輸入。 輸入 DbJoinExpression 是透過 InnerJoin 的 DbExpressionKind 所建立,表示套用至聯結條件下左右方輸入集的內部聯結作業,其中該聯結條件會比較外部和內部索引鍵值是否相等。
例外狀況
outer
、inner
、 outerKey
innerKey
或 selector
為 Null。
-或-
outerKey
或 innerKey
所產生的運算式為 null。
-或-
轉換至 DbExpression 後,selector
的結果為 null。
outer
或 inner
不具有集合結果類型。
-或-
outerKey
和 innerKey
所產生的運算式無法比較是否相等。
-或-
selector
的結果與 SelectMany 不相容。
備註
若要與 Join 相容, TSelector
必須衍生自 DbExpression,或者必須是具有 DbExpression 衍生屬性的匿名類型。 以下是 支援的型別 TSelector
範例:
outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))
TSelector
() DbPropertyExpression 。
outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })
TSelector
(是具有 DbExpression 衍生屬性的匿名類型) 。