次の方法で共有


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。入力した DbJoin 式は、InnerJoin の DbExpressionKind を使用して作成されます。これは、外部キー値と内部キー値の等価性を比較する結合条件の下で、左と右の入力セットに適用される内部結合操作を表します。

使用上の注意

Visual Basic および Visual C# では、このメソッドを、DbExpression 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「https://msdn.microsoft.com/ja-jp/library/bb384936(v=vs.113)」または「https://msdn.microsoft.com/ja-jp/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 名前空間