ObjectQuery<T>.GroupBy(String, String, ObjectParameter[]) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Seskupí výsledky dotazu podle zadaných kritérií.
public:
System::Data::Objects::ObjectQuery<System::Data::Common::DbDataRecord ^> ^ GroupBy(System::String ^ keys, System::String ^ projection, ... cli::array <System::Data::Objects::ObjectParameter ^> ^ parameters);
public System.Data.Objects.ObjectQuery<System.Data.Common.DbDataRecord> GroupBy (string keys, string projection, params System.Data.Objects.ObjectParameter[] parameters);
member this.GroupBy : string * string * System.Data.Objects.ObjectParameter[] -> System.Data.Objects.ObjectQuery<System.Data.Common.DbDataRecord>
Public Function GroupBy (keys As String, projection As String, ParamArray parameters As ObjectParameter()) As ObjectQuery(Of DbDataRecord)
Parametry
- keys
- String
Klíčové sloupce, podle kterých se mají seskupit výsledky.
- projection
- String
Seznam vybraných vlastností, které definují projekci.
- parameters
- ObjectParameter[]
Nula nebo více parametrů, které se používají v této metodě.
Návraty
Nová ObjectQuery<T> instance typu DbDataRecord , která je ekvivalentní k původní instanci s použitím funkce GROUP BY .
Výjimky
Parametr query
je null
nebo prázdný řetězec.
-nebo-
Parametr projection
je null
nebo prázdný řetězec.
Příklady
Tento příklad vytvoří nový ObjectQuery<T> objekt, který obsahuje výsledky existujícího dotazu seskupené podle názvu produktu.
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
string queryString = @"SELECT VALUE product
FROM AdventureWorksEntities.Products AS product";
ObjectQuery<Product> productQuery =
new ObjectQuery<Product>(queryString,
context, MergeOption.NoTracking);
ObjectQuery<DbDataRecord> productQuery2 =
productQuery.GroupBy("it.name AS pn",
"Sqlserver.COUNT(it.Name) as count, pn");
// Iterate through the collection of Products
// after the GroupBy method was called.
foreach (DbDataRecord result in productQuery2)
{
Console.WriteLine("Name: {0}; Count: {1}",
result["pn"], result["count"]);
}
}
}
Tento příklad vrátí sadu vnořených datových záznamů, které obsahují Contact.LastName
sloupec seskupený a seřazený abecedně podle prvního písmena .Contact.LastName
using (AdventureWorksEntities context =
new AdventureWorksEntities())
{
// Define the query with a GROUP BY clause that returns
// a set of nested LastName records grouped by first letter.
ObjectQuery<DbDataRecord> query =
context.Contacts
.GroupBy("SUBSTRING(it.LastName, 1, 1) AS ln", "ln")
.Select("it.ln AS ln, (SELECT c1.LastName " +
"FROM AdventureWorksEntities.Contacts AS c1 " +
"WHERE SubString(c1.LastName, 1, 1) = it.ln) AS CONTACT")
.OrderBy("it.ln");
// Execute the query and walk through the nested records.
foreach (DbDataRecord rec in
query.Execute(MergeOption.AppendOnly))
{
Console.WriteLine("Last names that start with the letter '{0}':",
rec[0]);
List<DbDataRecord> list = rec[1] as List<DbDataRecord>;
foreach (DbDataRecord r in list)
{
for (int i = 0; i < r.FieldCount; i++)
{
Console.WriteLine(" {0} ", r[i]);
}
}
}
}
Poznámky
GroupBy použije projekci určenou parametrem projection
. To znamená, že metoda ObjectQuery<T> vrácená metodou GroupBy je vždy typu DbDataRecord. Další informace najdete v tématu Dotazy na objekty.
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro