DbExpressionBuilder.Join 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| 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,表示在联接条件下应用于左右输入集的内部联接操作,该联接条件比较了外部键值和内部键值是否相等。
例外
适用于
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 创建的,表示在联接条件下应用于左右输入集的内部联接操作,该联接条件比较外部键值和内部键值是否相等。
例外
outer、 inner、 outerKey或 innerKeyselector 为 null。
-或-
由 outerKey 或 innerKey 为 null 生成的表达式。
-或-
转换为 DbExpression 后的结果 selector 为 null。
outer 或 inner 没有集合结果类型。
-或-
由 outerKey 它 innerKey 生成的表达式与相等性不相等。
-或-
结果 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 派生属性的匿名类型)。