DbExpressionBuilder.Join 方法

定义

重载

名称 说明
Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)

使用 InnerJoin 作为DbJoinExpression内部键,在指定外部键和内部键之间的相等条件上,创建一个联接外部和内部表达式指定的集的新DbExpressionKind项。

Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)

使用 InnerJoin 作为DbProjectExpression内部键,创建一个新DbExpressionKind项,以指定外部键和内部键之间的相等条件联接在外部表达式和内部表达式指定的集上指定选择器。

Join(DbExpression, DbExpression, Func<DbExpression,DbExpression>, Func<DbExpression,DbExpression>)

使用 InnerJoin 作为DbJoinExpression内部键,在指定外部键和内部键之间的相等条件上,创建一个联接外部和内部表达式指定的集的新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

指定外部集参数的 A DbExpression

inner
DbExpression

一个 DbExpression ,指定内部集参数。

outerKey
Func<DbExpression,DbExpression>

一个方法,指定如何从外部集的元素派生外部键值。

innerKey
Func<DbExpression,DbExpression>

一个方法,指定如何从内部集的元素派生内部键值。

返回

一个新的 DbJoinExpression,具有 DbExpressionKind InnerJoin,表示在联接条件下应用于左右输入集的内部联接操作,该联接条件比较了外部键值和内部键值是否相等。

例外

outer innerouterKeyinnerKey为 null。

-或-

outerKeyinnerKey 为 null 生成的表达式。

outerinner 没有集合结果类型。

-或-

outerKeyinnerKey 生成的表达式与相等性不相等。

适用于

Join<TSelector>(DbExpression, DbExpression, Func<DbExpression, DbExpression>, Func<DbExpression,DbExpression>, Func<DbExpression, DbExpression,TSelector>)

使用 InnerJoin 作为DbProjectExpression内部键,创建一个新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

指定外部集参数的 A DbExpression

inner
DbExpression

一个 DbExpression ,指定内部集参数。

outerKey
Func<DbExpression,DbExpression>

一个方法,指定如何从外部集的元素派生外部键值。

innerKey
Func<DbExpression,DbExpression>

一个方法,指定如何从内部集的元素派生内部键值。

selector
Func<DbExpression,DbExpression,TSelector>

一个方法,指定结果集的元素应如何派生自内部和外部集的元素。 此方法必须生成与 Join 兼容的类型的实例,并且可以解析为一个 DbExpression。 备注中介绍了兼容性 TSelector 要求。

返回

一个新的 DbProjectExpression,指定选择器作为其投影,新的 DbJoinExpression 作为其输入。 输入 DbJoinExpression 是使用 DbExpressionKind InnerJoin 创建的,表示在联接条件下应用于左右输入集的内部联接操作,该联接条件比较外部键值和内部键值是否相等。

例外

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

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 派生属性的匿名类型)。

适用于