DbExpressionBuilder.Join 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | 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,代表在連接條件下對左右輸入集合施加的內連接操作,該條件比較外鍵與內鍵值以求相等。
例外狀況
適用於
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 來建立的,代表在連接條件下對左右輸入集合施加的內部連接操作,該條件比較外鍵與內鍵值以求相等。
例外狀況
outer, inner, , outerKey或 innerKeyselector 為空。
-或-
由 outerKey 或 innerKey 產生的表達式為零。
-或-
轉換成 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") })
( 是一個具有 DbExpression 衍生特性的匿名型態。)TSelector