Udostępnij za pośrednictwem


DbExpressionBuilder.Join Metoda

Definicja

Przeciążenia

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 przy użyciu elementu 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 nad zestawami określonymi przez wyrażenia zewnętrzne i wewnętrzne, przyłączony do warunku równości między określonymi kluczami zewnętrznymi i wewnętrznymi przy użyciu elementu 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 przy użyciu elementu 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 argument zestawu zewnętrznego.

inner
DbExpression

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

outerKey
Func<DbExpression,DbExpression>

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

innerKey
Func<DbExpression,DbExpression>

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

Zwraca

Nowa funkcja DbJoinExpression z elementem DbExpressionKind InnerJoin, która 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 dla równości.

Wyjątki

outer, innerlub outerKeyinnerKey ma wartość null.

-lub-

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

outer lub inner nie ma typu wyniku kolekcji.

-lub-

Wyrażenia generowane przez outerKey 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 nad zestawami określonymi przez wyrażenia zewnętrzne i wewnętrzne, przyłączony do warunku równości między określonymi kluczami zewnętrznymi i wewnętrznymi przy użyciu elementu 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 argument zestawu zewnętrznego.

inner
DbExpression

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

outerKey
Func<DbExpression,DbExpression>

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

innerKey
Func<DbExpression,DbExpression>

Metoda określająca sposób, w jaki 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 go rozpoznać w obiekcie DbExpression. Wymagania dotyczące zgodności są TSelector opisane w uwagach.

Zwraca

Nowy selektor DbProjectExpression z określonym selektorem jako projekcją i nową bazą danych DbJoinExpression jako dane wejściowe. Dane wejściowe DbJoinExpression są tworzone za pomocą elementu DbExpressionKind InnerJoin, który 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 dla równości.

Wyjątki

outer, inner, outerKeylub innerKeyselector ma wartość null.

-lub-

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

-lub-

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

outer lub inner nie ma typu wyniku kolekcji.

-lub-

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

-lub-

Wynik nie selector jest zgodny z 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 TSelectorprogramu :

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