DbExpressionBuilder.Join 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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,这表示在比较外部键值和内部键值是否相等的联接条件下将内部联接运算应用于左输入集和右输入集。
例外
outer
、inner
、outerKey
或 innerKey
为 null。
- 或 -
由 outerKey
或 innerKey
生成的表达式为 null。
适用于
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
的兼容性要求。
返回
新的 DbProjectExpression,它使用指定的选择器作为其投影、新的 DbJoinExpression 作为其输入。 使用 InnerJoin 的 DbExpressionKind 来创建输入 DbJoinExpression,这表示在比较外部键值和内部键值是否相等的联接条件下将内部联接运算应用于左输入集和右输入集。
例外
outer
、inner
、 outerKey
innerKey
或 selector
为 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 派生属性。