DbExpressionBuilder.SelectMany Metoda

Definicja

Przeciążenia

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

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

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

Tworzy nowy DbApplyExpression , który oblicza podane apply wyrażenie raz dla każdego elementu danego zestawu danych wejściowych, tworząc kolekcję wierszy z odpowiednimi danymi wejściowymi i zastosuj kolumny. Wiersze, dla których apply wartość ocenia pustą zestaw, nie są uwzględniane. Zostanie DbProjectExpression utworzony element , który wybiera określony selector wiersz, generując ogólną kolekcję wyników.

SelectMany(DbExpression, Func<DbExpression,DbExpression>)

Tworzy nowy DbApplyExpression , który oblicza podane apply wyrażenie raz dla każdego elementu danego zestawu danych wejściowych, tworząc kolekcję wierszy z odpowiednimi danymi wejściowymi i zastosuj kolumny. Wiersze, dla których apply wartość ocenia pustą zestaw, nie są uwzględniane. Zostanie DbProjectExpression utworzony element , który wybiera kolumnę apply z każdego wiersza, tworzą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ę do oceny raz dla każdego elementu członkowskiego zestawu danych wejściowych.

Zwraca

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

Wyjątki

source lub apply ma wartość null.

-lub-

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

source nie ma typu wyników kolekcji.

-lub-

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

Dotyczy

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

Tworzy nowy DbApplyExpression , który oblicza podane apply wyrażenie raz dla każdego elementu danego zestawu danych wejściowych, tworząc kolekcję wierszy z odpowiednimi danymi wejściowymi i zastosuj kolumny. Wiersze, dla których apply wartość ocenia pustą zestaw, nie są uwzględniane. Zostanie DbProjectExpression utworzony element , który wybiera określony selector wiersz, 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 wyniku metody .selector

Parametry

source
DbExpression

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

apply
Func<DbExpression,DbExpression>

Metoda reprezentująca logikę do oceny 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 zestawów wejściowych i stosować zestawy. Ta metoda musi utworzyć wystąpienie typu zgodnego z elementem SelectMany i można go rozpoznać w obiekcie DbExpression. Wymagania dotyczące zgodności są TSelector opisane w uwagach.

Zwraca

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

Wyjątki

sourcelub applyselector ma wartość null.

-lub-

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

-lub-

Wynik selector jest zerowy podczas konwersji na DbExpression.

source nie ma typu wyników kolekcji.

-lub-

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

Uwagi

Aby być zgodnym z 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 TSelectorprogramu :

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