Тіл

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

Исключения

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, , innerouterKeyinnerKey или 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).

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