Поделиться через


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 создается с помощью класса DbExpressionKind InnerJoin, который представляет операцию внутреннего соединения, применяемую к левому и правому входным наборам в условии соединения, сравнивающего значения внешних и внутренних ключей на равенство.

Исключения

Параметры outer, inner, outerKey или innerKey имеют значение NULL.

-или-

Выражение, созданное outerKey или innerKey, имеет значение NULL.

outer или inner не имеет типа результата коллекции.

-или-

Для выражений, созданных outerKey и innerKey, равенство не сравнивается.

Применяется к

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 качестве входных данных. Входное выражение DbJoinExpression создается с помощью DbExpressionKind InnerJoin, который представляет операцию внутреннего соединения, применяемую к левому и правому входным наборам в условии соединения, сравнивающего значения внешних и внутренних ключей на равенство.

Исключения

outer, inner, outerKeyinnerKey или selector имеет значение NULL.

-или-

Выражение, созданное outerKey или innerKey, имеет значение NULL.

-или-

Результат selector имеет значение NULL после преобразования в DbExpression.

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

Применяется к