DbExpressionBuilder.Join 方法

定義

多載

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,表示套用至聯結條件下左右方輸入集的內部聯結作業,其中該聯結條件會比較外部和內部索引鍵值是否相等。

例外狀況

outerinnerouterKeyinnerKey 為 null。

-或-

outerKeyinnerKey 所產生的運算式為 null。

outerinner 不具有集合結果類型。

-或-

outerKeyinnerKey 所產生的運算式無法比較是否相等。

適用於

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>

此方法指定結果集的項目該如何自內外部集合的項目衍生。 此方法所產生的執行個體類型必須與聯結相容,且可解析為 DbExpressionTSelector 的相容性需求詳述於<備註>。

傳回

新的 DbProjectExpression,將指定的選取器作為其投影,並將新的 DbJoinExpression 作為其輸入。 輸入 DbJoinExpression 是透過 InnerJoin 的 DbExpressionKind 所建立,表示套用至聯結條件下左右方輸入集的內部聯結作業,其中該聯結條件會比較外部和內部索引鍵值是否相等。

例外狀況

outerinnerouterKeyinnerKeyselector 為 Null。

-或-

outerKeyinnerKey 所產生的運算式為 null。

-或-

轉換至 DbExpression 後,selector 的結果為 null。

outerinner 不具有集合結果類型。

-或-

outerKeyinnerKey 所產生的運算式無法比較是否相等。

-或-

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

適用於