共用方式為


DbExpressionBuilder.Join<TSelector> 方法 (DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression>, Func<DbExpression, DbExpression, TSelector>)

[此頁面專屬於 Entity Framework 第 6 版。最新版本可從 'Entity Framework' NuGet 套件取得。如需 Entity Framework 的詳細資訊,請參閱 msdn.com/data/ef。]

使用 InnerJoin 做為 DbExpressionKind,建立新的 DbProjectExpression,它會將指定的選擇器投射在內外部運算式所指定的集合,這裡的內外部運算式是依據指定內外部索引鍵間的相等條件而聯結的。

命名空間:  System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder
組件:  EntityFramework (在 EntityFramework.dll 中)

語法

'宣告
<ExtensionAttribute> _
Public Shared 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
'用途
Dim outer As DbExpression 
Dim inner As DbExpression 
Dim outerKey As Func(Of DbExpression, DbExpression)
Dim innerKey As Func(Of DbExpression, DbExpression)
Dim selector As Func(Of DbExpression, DbExpression, TSelector)
Dim returnValue As DbProjectExpression 

returnValue = outer.Join(inner, outerKey, _
    innerKey, selector)
public static DbProjectExpression Join<TSelector>(
    this DbExpression outer,
    DbExpression inner,
    Func<DbExpression, DbExpression> outerKey,
    Func<DbExpression, DbExpression> innerKey,
    Func<DbExpression, DbExpression, TSelector> selector
)
[ExtensionAttribute]
public:
generic<typename TSelector>
static DbProjectExpression^ Join(
    DbExpression^ outer, 
    DbExpression^ inner, 
    Func<DbExpression^, DbExpression^>^ outerKey, 
    Func<DbExpression^, DbExpression^>^ innerKey, 
    Func<DbExpression^, DbExpression^, TSelector>^ selector
)
static member Join : 
        outer:DbExpression * 
        inner:DbExpression * 
        outerKey:Func<DbExpression, DbExpression> * 
        innerKey:Func<DbExpression, DbExpression> * 
        selector:Func<DbExpression, DbExpression, 'TSelector> -> DbProjectExpression
JScript does not support generic types and methods.

類型參數

  • TSelector
    選擇器的類型。

參數

  • selector
    類型:System.Func<DbExpression, DbExpression, TSelector>
    方法,指定結果集項目要如何衍生自內外部集合項目。 此方法所產生的類型執行個體,必須與 Join 相容並且可以解析成 DbExpression。 TSelector 的相容性需求已在備註中說明。

傳回值

類型:System.Data.Entity.Core.Common.CommandTrees.DbProjectExpression
以指定選取器做為投影而以新 DbJoinExpression 做為其輸入的新 DbProjectExpression。輸入 DbJoinExpression 是以 InnerJoin 的 DbExpressionKind 建立而成,表示在比較外部與內部索引鍵值是否相等的聯結條件下套用至左方和右方輸入集合的內部聯結作業。

使用注意事項

在 Visual Basic 和 C# 中,您可以在任何 DbExpression 類型物件中呼叫這個方法以做為執行個體。使用執行個體方法語法呼叫這個方法時,請省略第一個參數。如需詳細資訊,請參閱 https://msdn.microsoft.com/zh-tw/library/bb384936(v=vs.113)https://msdn.microsoft.com/zh-tw/library/bb383977(v=vs.113)

例外狀況

例外狀況 條件
ArgumentNullException

outer、inner、outerKey、innerKey 或 selector 為 null。

ArgumentException

outer 或 inner 沒有集合結果類型。

ArgumentNullException

outerKey 或 innerKey 所產生的陳述式為 null。

ArgumentNullException

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

ArgumentException

outerKey 和 innerKey 所產生的運算式不相容,無法進行相等比較。

ArgumentException

selector 的結果與 SelectMany 不相容。

備註

若要與 Join 相容,TSelector 必須衍生自 DbExpression,或者必須是具有 DbExpression 衍生屬性的匿名類型。 以下是 TSelector 所支援類型的範例:<code>outer.Join(inner, o =&gt; o.Property("ID"), i =&gt; i.Property("ID"), (o, i) =&gt; o.Property("Name"))</code> (<typeparamref name="TSelector" /> 是 DbPropertyExpression)。 <code>outer.Join(inner, o =&gt; o.Property("ID"), i =&gt; i.Property("ID"), (o, i) =&gt; new { OName = o.Property("Name"), IName = i.Property("Name") })</code> ( <typeparamref name="TSelector" /> 是具有 DbExpression 衍生屬性的匿名類型)。

請參閱

參考

DbExpressionBuilder 類別

Join 多載

System.Data.Entity.Core.Common.CommandTrees.ExpressionBuilder 命名空間