DbExpressionBuilder.Join 方法

定義

多載

名稱 Description
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)

建立一個新資料 DbJoinExpression ,將外層與內層表達式指定的集合連接起來,且在外層與內層鍵之間的相等條件下,使用 InnerJoin 作為 DbExpressionKind

Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)

建立一個新版本 DbProjectExpression ,將指定的選擇子投影到由外層與內層表達式指定的集合上,並以相等條件連接外層與內層鍵,使用 InnerJoin 作為 DbExpressionKind

Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)

建立一個新資料 DbJoinExpression ,將外層與內層表達式指定的集合連接起來,且在外層與內層鍵之間的相等條件下,使用 InnerJoin 作為 DbExpressionKind

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

A DbExpression 指定內集合論證。

outerKey
Func<DbExpression,DbExpression>

一種方法,指定如何從外層集合的元素推導出外圍鍵值。

innerKey
Func<DbExpression,DbExpression>

一種方法,指定如何從內層集合的元素推導出內鍵值。

傳回

一個新的 DbJoinExpression,包含 DbExpressionKind 的 是 InnerJoin,代表在連接條件下對左右輸入集合施加的內連接操作,該條件比較外鍵與內鍵值以求相等。

例外狀況

outer, , innerouterKeyinnerKey 為空。

-或-

outerKeyinnerKey 產生的表達式為零。

outerinner 沒有集合結果類型。

-或-

outerKeyinnerKey 產生的表達式在相等時無法比較。

適用於

Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)

建立一個新版本 DbProjectExpression ,將指定的選擇子投影到由外層與內層表達式指定的集合上,並以相等條件連接外層與內層鍵,使用 InnerJoin 作為 DbExpressionKind

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

A DbExpression 指定內集合論證。

outerKey
Func<DbExpression,DbExpression>

一種方法,指定如何從外層集合的元素推導出外圍鍵值。

innerKey
Func<DbExpression,DbExpression>

一種方法,指定如何從內層集合的元素推導出內鍵值。

selector
Func<DbExpression,DbExpression,TSelector>

一種方法,規定結果集合中的元素應如何從內集合與外集合的元素推導出來。 此方法必須產生與 Join 相容且可解析為 DbExpression的型別實例。 相容 TSelector 性要求詳見備註。

傳回

一個新的 DbProjectExpression,投影為指定的選擇器,輸入為新的 DbJoinExpression。 輸入 DbJoinExpression 是透過 DbExpressionKind 的 InnerJoin 來建立的,代表在連接條件下對左右輸入集合施加的內部連接操作,該條件比較外鍵與內鍵值以求相等。

例外狀況

outerinner, , outerKeyinnerKeyselector 為空。

-或-

outerKeyinnerKey 產生的表達式為零。

-或-

轉換成 DbExpression 後的結果 selector 為 null。

outerinner 沒有集合結果類型。

-或-

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"))

TSelectorDbPropertyExpression)。

outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })

( 是一個具有 DbExpression 衍生特性的匿名型態。)TSelector

適用於