Język

DbExpressionBuilder.Join Metoda

Definicja

Przeciążenia

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

Tworzy nowy DbJoinExpression zestaw, który łączy zestawy określone przez wyrażenia zewnętrzne i wewnętrzne, w warunku równości między określonymi kluczami zewnętrznymi i wewnętrznymi, używając innerJoin jako DbExpressionKind.

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

Tworzy nowy DbProjectExpression element, który projektuje określony selektor dla zestawów określonych przez wyrażenia zewnętrzne i wewnętrzne, sprzężone w warunku równości między określonymi kluczami zewnętrznymi i wewnętrznymi, używając innerJoin jako DbExpressionKind.

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

Tworzy nowy DbJoinExpression zestaw, który łączy zestawy określone przez wyrażenia zewnętrzne i wewnętrzne, w warunku równości między określonymi kluczami zewnętrznymi i wewnętrznymi, używając innerJoin jako 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

Parametry

outer
DbExpression

Element DbExpression określający zewnętrzny argument zestawu.

inner
DbExpression

Element DbExpression określający argument zestawu wewnętrznego.

outerKey
Func<DbExpression,DbExpression>

Metoda określająca, w jaki sposób wartość klucza zewnętrznego powinna pochodzić z elementu zestawu zewnętrznego.

innerKey
Func<DbExpression,DbExpression>

Metoda określająca, w jaki sposób wartość klucza wewnętrznego powinna pochodzić z elementu zestawu wewnętrznego.

Zwraca

Nowa funkcja DbJoinExpression z elementem DbExpressionKind InnerJoin reprezentuje operację sprzężenia wewnętrznego zastosowaną do zestawów wejściowych po lewej i prawej stronie w warunku sprzężenia, który porównuje wartości klucza zewnętrznego i wewnętrznego pod kątem równości.

Wyjątki

outer, lub innerouterKeyinnerKey ma wartość null.

— lub —

Wyrażenie wygenerowane przez outerKey element lub innerKey ma wartość null.

outer lub inner nie ma typu wyników kolekcji.

— lub —

Wyrażenia generowane przez outerKey element i innerKey nie są porównywalne z równością.

Dotyczy

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

Tworzy nowy DbProjectExpression element, który projektuje określony selektor dla zestawów określonych przez wyrażenia zewnętrzne i wewnętrzne, sprzężone w warunku równości między określonymi kluczami zewnętrznymi i wewnętrznymi, używając innerJoin jako 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

Parametry typu

TSelector

Typ elementu selector.

Parametry

outer
DbExpression

Element DbExpression określający zewnętrzny argument zestawu.

inner
DbExpression

Element DbExpression określający argument zestawu wewnętrznego.

outerKey
Func<DbExpression,DbExpression>

Metoda określająca, w jaki sposób wartość klucza zewnętrznego powinna pochodzić z elementu zestawu zewnętrznego.

innerKey
Func<DbExpression,DbExpression>

Metoda określająca, w jaki sposób wartość klucza wewnętrznego powinna pochodzić z elementu zestawu wewnętrznego.

selector
Func<DbExpression,DbExpression,TSelector>

Metoda określająca, w jaki sposób element zestawu wyników powinien pochodzić z elementów zestawów wewnętrznych i zewnętrznych. Ta metoda musi utworzyć wystąpienie typu zgodnego z elementem Join i można je rozpoznać w obiekcie DbExpression. Wymagania dotyczące zgodności dla TSelector programu opisano w uwagach.

Zwraca

Nowy element DbProjectExpression z określonym selektorem jako jego projekcją i nową wartością DbJoinExpression jako jego danymi wejściowymi. Dane wejściowe DbJoinExpression są tworzone za pomocą elementu DbExpressionKind InnerJoin, który reprezentuje operację sprzężenia wewnętrznego zastosowanego do zestawów wejściowych po lewej i prawej stronie w warunku sprzężenia, który porównuje wartości klucza zewnętrznego i wewnętrznego pod kątem równości.

Wyjątki

outer, , innerouterKeyinnerKey lub selector ma wartość null.

— lub —

Wyrażenie wygenerowane przez outerKey element lub innerKey ma wartość null.

— lub —

Wynik selector ma wartość null po konwersji na DbExpression.

outer lub inner nie ma typu wyników kolekcji.

— lub —

Wyrażenia generowane przez outerKey element i innerKey nie są porównywalne z równością.

— lub —

Wynik polecenia selector nie jest zgodny z elementem SelectMany.

Uwagi

Aby być zgodnym z elementem Join, TSelector musi pochodzić z DbExpressionklasy lub musi być typem anonimowym z właściwościami pochodnymi DbExpression. Poniżej przedstawiono przykłady obsługiwanych typów dla programu TSelector:

outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => o.Property("Name"))

(TSelector to DbPropertyExpression).

outer.Join(inner, o => o.Property("ID"), i => i.Property("ID"), (o, i) => new { OName = o.Property("Name"), IName = i.Property("Name") })

(TSelector jest typem anonimowym z właściwościami pochodnymi DbExpression).

Dotyczy