DbExpressionBuilder.Join メソッド

定義

オーバーロード

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

内部セット引数を指定する DbExpression

outerKey
Func<DbExpression,DbExpression>

外部セットの要素からどのように外部キーの値を得るかを指定するメソッド。

innerKey
Func<DbExpression,DbExpression>

内部セットの要素からどのように内部キーの値を得るかを指定するメソッド。

戻り値

新しい DbJoinExpression は、InnerJoin の DbExpressionKind を使用して作成され、外部キー値と内部キー値の等価性を比較する結合条件で左の入力セットと右の入力セットに適用される内部結合操作を表します。

例外

outerinnerouterKey、または innerKey が null です。

- または -

outerKey または innerKey によって生成された式が null です。

outer または inner の結果型がコレクション型ではありません。

- または -

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

内部セット引数を指定する DbExpression

outerKey
Func<DbExpression,DbExpression>

外部セットの要素からどのように外部キーの値を得るかを指定するメソッド。

innerKey
Func<DbExpression,DbExpression>

内部セットの要素からどのように内部キーの値を得るかを指定するメソッド。

selector
Func<DbExpression,DbExpression,TSelector>

内部セットと外部セットの要素から結果セットの要素をどのように得るかを指定するメソッド。 このメソッドは、Join に対応し、DbExpression に解決できる型のインスタンスを生成する必要があります。 TSelector の対応要件については、「解説」をご覧ください。

戻り値

指定されたセレクターで射影し、新しい DbJoinExpression を入力として使用する新しい DbProjectExpression。 入力の DbJoinExpression は、InnerJoin に DbExpressionKind を使用して作成されます。これは、外部キー値と内部キー値の等価性を比較する結合条件で左の入力セットと右の入力セットに適用される内部結合操作を表します。

例外

outerinnerouterKeyinnerKey または selector が null です。

- または -

outerKey または innerKey によって生成された式が null です。

- または -

DbExpression に変換された selector の結果が null です。

outer または inner の結果型がコレクション型ではありません。

- または -

outerKeyinnerKey によって生成された式を等価比較できません。

- または -

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

(TSelector は、DbExpression 派生プロパティを持つ匿名型です)。

適用対象