DbExpressionBuilder.SelectMany Metoda

Definicja

Przeciążenia

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

Tworzy nowy DbApplyExpression element, który oblicza dane apply wyrażenie raz dla każdego elementu danego zestawu danych wejściowych, tworząc kolekcję wierszy z odpowiednimi danymi wejściowymi i stosując kolumny. Wiersze, dla których apply wynikiem jest pusty zestaw, nie są uwzględniane. Zostanie DbProjectExpression utworzony obiekt , który wybiera kolumnę apply z każdego wiersza, generując ogólną kolekcję apply wyników.

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

Tworzy nowy DbApplyExpression element, który oblicza dane apply wyrażenie raz dla każdego elementu danego zestawu danych wejściowych, tworząc kolekcję wierszy z odpowiednimi danymi wejściowymi i stosując kolumny. Wiersze, dla których apply wynikiem jest pusty zestaw, nie są uwzględniane. Następnie DbProjectExpression tworzony jest element , który wybiera określony selector w każdym wierszu, generując ogólną kolekcję wyników.

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Tworzy nowy DbApplyExpression element, który oblicza dane apply wyrażenie raz dla każdego elementu danego zestawu danych wejściowych, tworząc kolekcję wierszy z odpowiednimi danymi wejściowymi i stosując kolumny. Wiersze, dla których apply wynikiem jest pusty zestaw, nie są uwzględniane. Zostanie DbProjectExpression utworzony obiekt , który wybiera kolumnę apply z każdego wiersza, generując ogólną kolekcję apply wyników.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Data::Common::CommandTrees::DbProjectExpression ^ SelectMany(System::Data::Common::CommandTrees::DbExpression ^ source, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ apply);
public static System.Data.Common.CommandTrees.DbProjectExpression SelectMany(this System.Data.Common.CommandTrees.DbExpression source, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> apply);
static member SelectMany : System.Data.Common.CommandTrees.DbExpression * Func<System.Data.Common.CommandTrees.DbExpression, System.Data.Common.CommandTrees.DbExpression> -> System.Data.Common.CommandTrees.DbProjectExpression
<Extension()>
Public Function SelectMany (source As DbExpression, apply As Func(Of DbExpression, DbExpression)) As DbProjectExpression

Parametry

source
DbExpression

Element DbExpression określający zestaw danych wejściowych.

apply
Func<DbExpression,DbExpression>

Metoda reprezentująca logikę, która ma być oceniana raz dla każdego elementu członkowskiego zestawu danych wejściowych.

Zwraca

Nowa kolumna DbProjectExpression, która wybiera kolumnę apply z nowej bazy danych DbApplyExpression z określonymi danymi wejściowymi i stosuje powiązania i DbExpressionKind crossApply.

Wyjątki

source lub apply ma wartość null.

— lub —

Wyrażenie wygenerowane przez apply element ma wartość null.

source nie ma typu wyników kolekcji.

— lub —

Wyrażenie utworzone przez apply program nie ma typu kolekcji.

Dotyczy

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

Tworzy nowy DbApplyExpression element, który oblicza dane apply wyrażenie raz dla każdego elementu danego zestawu danych wejściowych, tworząc kolekcję wierszy z odpowiednimi danymi wejściowymi i stosując kolumny. Wiersze, dla których apply wynikiem jest pusty zestaw, nie są uwzględniane. Następnie DbProjectExpression tworzony jest element , który wybiera określony selector w każdym wierszu, generując ogólną kolekcję wyników.

public:
generic <typename TSelector>
[System::Runtime::CompilerServices::Extension]
 static System::Data::Common::CommandTrees::DbProjectExpression ^ SelectMany(System::Data::Common::CommandTrees::DbExpression ^ source, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^> ^ apply, Func<System::Data::Common::CommandTrees::DbExpression ^, System::Data::Common::CommandTrees::DbExpression ^, TSelector> ^ selector);
public static System.Data.Common.CommandTrees.DbProjectExpression SelectMany<TSelector>(this System.Data.Common.CommandTrees.DbExpression source, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression> apply, Func<System.Data.Common.CommandTrees.DbExpression,System.Data.Common.CommandTrees.DbExpression,TSelector> selector);
static member SelectMany : 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 SelectMany(Of TSelector) (source As DbExpression, apply As Func(Of DbExpression, DbExpression), selector As Func(Of DbExpression, DbExpression, TSelector)) As DbProjectExpression

Parametry typu

TSelector

Typ selectorwyniku metody .

Parametry

source
DbExpression

Element DbExpression określający zestaw danych wejściowych.

apply
Func<DbExpression,DbExpression>

Metoda reprezentująca logikę, która ma być oceniana raz dla każdego elementu członkowskiego zestawu danych wejściowych.

selector
Func<DbExpression,DbExpression,TSelector>

Metoda określająca, w jaki sposób element zestawu wyników powinien pochodzić, biorąc pod uwagę element zestawu danych wejściowych i zastosuj zestawy. Ta metoda musi utworzyć wystąpienie typu zgodnego z typem SelectMany i można je rozpoznać w obiekcie DbExpression. Wymagania dotyczące zgodności dla TSelector programu opisano w uwagach.

Zwraca

Nowy dbProjectExpression, który wybiera wynik danego selektora z nowej dbApplyExpression z określonym wejściem i stosuje powiązania i DbExpressionKind crossApply.

Wyjątki

source, apply lub selector ma wartość null.

— lub —

Wyrażenie wygenerowane przez apply element ma wartość null.

— lub —

Wynik parametru selector ma wartość null dla konwersji na DbExpression.

source nie ma typu wyników kolekcji.

— lub —

Wyrażenie utworzone przez apply program nie ma typu kolekcji. nie ma typu kolekcji.

Uwagi

Aby być zgodnym z elementem SelectMany, 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:

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => apply.Property("Name"))

(TSelector to DbPropertyExpression).

source.SelectMany(x => x.Property("RelatedCollection"), (source, apply) => new { SourceName = source.Property("Name"), RelatedName = apply.Property("Name") })

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

Dotyczy