Queryable.LeftJoin Metoda

Definicja

Przeciążenia

Nazwa Opis
LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>)

Koreluje elementy dwóch sekwencji na podstawie pasujących kluczy. Określony IEqualityComparer<T> służy do porównywania kluczy.

LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>)

Koreluje elementy dwóch sekwencji na podstawie pasujących kluczy. Domyślny moduł porównywania równości służy do porównywania kluczy.

LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>)

Źródło:
Queryable.cs
Źródło:
Queryable.cs

Koreluje elementy dwóch sekwencji na podstawie pasujących kluczy. Określony IEqualityComparer<T> służy do porównywania kluczy.

public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TResult> ^ LeftJoin(System::Linq::IQueryable<TOuter> ^ outer, System::Collections::Generic::IEnumerable<TInner> ^ inner, System::Linq::Expressions::Expression<Func<TOuter, TKey> ^> ^ outerKeySelector, System::Linq::Expressions::Expression<Func<TInner, TKey> ^> ^ innerKeySelector, System::Linq::Expressions::Expression<Func<TOuter, TInner, TResult> ^> ^ resultSelector, System::Collections::Generic::IEqualityComparer<TKey> ^ comparer);
public static System.Linq.IQueryable<TResult> LeftJoin<TOuter,TInner,TKey,TResult>(this System.Linq.IQueryable<TOuter> outer, System.Collections.Generic.IEnumerable<TInner> inner, System.Linq.Expressions.Expression<Func<TOuter,TKey>> outerKeySelector, System.Linq.Expressions.Expression<Func<TInner,TKey>> innerKeySelector, System.Linq.Expressions.Expression<Func<TOuter,TInner?,TResult>> resultSelector, System.Collections.Generic.IEqualityComparer<TKey>? comparer);
static member LeftJoin : System.Linq.IQueryable<'Outer> * seq<'Inner> * System.Linq.Expressions.Expression<Func<'Outer, 'Key>> * System.Linq.Expressions.Expression<Func<'Inner, 'Key>> * System.Linq.Expressions.Expression<Func<'Outer, 'Inner, 'Result>> * System.Collections.Generic.IEqualityComparer<'Key> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function LeftJoin(Of TOuter, TInner, TKey, TResult) (outer As IQueryable(Of TOuter), inner As IEnumerable(Of TInner), outerKeySelector As Expression(Of Func(Of TOuter, TKey)), innerKeySelector As Expression(Of Func(Of TInner, TKey)), resultSelector As Expression(Of Func(Of TOuter, TInner, TResult)), comparer As IEqualityComparer(Of TKey)) As IQueryable(Of TResult)

Parametry typu

TOuter

Typ elementów pierwszej sekwencji.

TInner

Typ elementów drugiej sekwencji.

TKey

Typ kluczy zwracanych przez funkcje selektora kluczy.

TResult

Typ elementów wyniku.

Parametry

outer
IQueryable<TOuter>

Pierwsza sekwencja do sprzężenia.

inner
IEnumerable<TInner>

Sekwencja dołączenia do pierwszej sekwencji.

outerKeySelector
Expression<Func<TOuter,TKey>>

Funkcja wyodrębniania klucza sprzężenia z każdego elementu pierwszej sekwencji.

innerKeySelector
Expression<Func<TInner,TKey>>

Funkcja wyodrębniania klucza sprzężenia z każdego elementu drugiej sekwencji.

resultSelector
Expression<Func<TOuter,TInner,TResult>>

Funkcja tworząca element wynikowy na podstawie dwóch pasujących elementów.

comparer
IEqualityComparer<TKey>

IEqualityComparer<T> skrótu i porównania kluczy.

Zwraca

IQueryable<TResult>

Element IEnumerable<T> zawierający elementy typu TResult , które są uzyskiwane przez wykonanie lewego sprzężenia zewnętrznego w dwóch sekwencjach.

Wyjątki

outer lub innerouterKeySelector lub innerKeySelectorresultSelector lub ma wartość null.

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument type jest jednym z Func<T,TResult> typów.

W przypadku tych parametrów można przekazać wyrażenie lambda i zostanie skompilowane do elementu Expression<TDelegate>.

Metoda LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>) generuje obiekt MethodCallExpression , który reprezentuje wywołanie LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>) jako skonstruowaną metodę ogólną.

Następnie przekazuje MethodCallExpression wartość do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider właściwość parametru outer .

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażeń reprezentującego wywołanie LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>, IEqualityComparer<TKey>) , zależy od implementacji typu parametru outer .

Oczekiwanym zachowaniem jest sprzężenia zewnętrznego po lewej stronie.

Funkcje outerKeySelector i innerKeySelector służą do wyodrębniania kluczy z outer i innerodpowiednio.

Te klucze są porównywane pod kątem równości w celu dopasowania elementów z każdej sekwencji.

Para elementów jest przechowywana dla każdego elementu w inner programie, który pasuje do elementu w outerelemecie , oraz pary dla każdego elementu w outer obiekcie, który nie ma dopasowań w elemecie inner.

Następnie funkcja jest wywoływana resultSelector w celu projekcji obiektu wynikowego z każdej pary elementów.

Dotyczy

LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>)

Źródło:
Queryable.cs
Źródło:
Queryable.cs

Koreluje elementy dwóch sekwencji na podstawie pasujących kluczy. Domyślny moduł porównywania równości służy do porównywania kluczy.

public:
generic <typename TOuter, typename TInner, typename TKey, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TResult> ^ LeftJoin(System::Linq::IQueryable<TOuter> ^ outer, System::Collections::Generic::IEnumerable<TInner> ^ inner, System::Linq::Expressions::Expression<Func<TOuter, TKey> ^> ^ outerKeySelector, System::Linq::Expressions::Expression<Func<TInner, TKey> ^> ^ innerKeySelector, System::Linq::Expressions::Expression<Func<TOuter, TInner, TResult> ^> ^ resultSelector);
public static System.Linq.IQueryable<TResult> LeftJoin<TOuter,TInner,TKey,TResult>(this System.Linq.IQueryable<TOuter> outer, System.Collections.Generic.IEnumerable<TInner> inner, System.Linq.Expressions.Expression<Func<TOuter,TKey>> outerKeySelector, System.Linq.Expressions.Expression<Func<TInner,TKey>> innerKeySelector, System.Linq.Expressions.Expression<Func<TOuter,TInner?,TResult>> resultSelector);
static member LeftJoin : System.Linq.IQueryable<'Outer> * seq<'Inner> * System.Linq.Expressions.Expression<Func<'Outer, 'Key>> * System.Linq.Expressions.Expression<Func<'Inner, 'Key>> * System.Linq.Expressions.Expression<Func<'Outer, 'Inner, 'Result>> -> System.Linq.IQueryable<'Result>
<Extension()>
Public Function LeftJoin(Of TOuter, TInner, TKey, TResult) (outer As IQueryable(Of TOuter), inner As IEnumerable(Of TInner), outerKeySelector As Expression(Of Func(Of TOuter, TKey)), innerKeySelector As Expression(Of Func(Of TInner, TKey)), resultSelector As Expression(Of Func(Of TOuter, TInner, TResult))) As IQueryable(Of TResult)

Parametry typu

TOuter

Typ elementów pierwszej sekwencji.

TInner

Typ elementów drugiej sekwencji.

TKey

Typ kluczy zwracanych przez funkcje selektora kluczy.

TResult

Typ elementów wyniku.

Parametry

outer
IQueryable<TOuter>

Pierwsza sekwencja do sprzężenia.

inner
IEnumerable<TInner>

Sekwencja dołączenia do pierwszej sekwencji.

outerKeySelector
Expression<Func<TOuter,TKey>>

Funkcja wyodrębniania klucza sprzężenia z każdego elementu pierwszej sekwencji.

innerKeySelector
Expression<Func<TInner,TKey>>

Funkcja wyodrębniania klucza sprzężenia z każdego elementu drugiej sekwencji.

resultSelector
Expression<Func<TOuter,TInner,TResult>>

Funkcja tworząca element wynikowy na podstawie dwóch pasujących elementów.

Zwraca

IQueryable<TResult>

Element IEnumerable<T> zawierający elementy typu TResult , które są uzyskiwane przez wykonanie lewego sprzężenia zewnętrznego w dwóch sekwencjach.

Wyjątki

outer lub innerouterKeySelector lub innerKeySelectorresultSelector lub ma wartość null.

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument type jest jednym z Func<T,TResult> typów.

W przypadku tych parametrów można przekazać wyrażenie lambda i zostanie skompilowane do elementu Expression<TDelegate>.

Metoda LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>) generuje obiekt MethodCallExpression , który reprezentuje wywołanie LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>) jako skonstruowaną metodę ogólną.

Następnie przekazuje MethodCallExpression wartość do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider właściwość parametru outer .

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażeń reprezentującego wywołanie LeftJoin<TOuter,TInner,TKey,TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter,TKey>>, Expression<Func<TInner,TKey>>, Expression<Func<TOuter,TInner,TResult>>) , zależy od implementacji typu parametru outer .

Oczekiwanym zachowaniem jest sprzężenia zewnętrznego po lewej stronie.

Funkcje outerKeySelector i innerKeySelector służą do wyodrębniania kluczy z outer i innerodpowiednio.

Te klucze są porównywane pod kątem równości w celu dopasowania elementów z każdej sekwencji.

Para elementów jest przechowywana dla każdego elementu w inner programie, który pasuje do elementu w outerelemecie , oraz pary dla każdego elementu w outer obiekcie, który nie ma dopasowań w elemecie inner.

Następnie funkcja jest wywoływana resultSelector w celu projekcji obiektu wynikowego z każdej pary elementów.

Dotyczy