ObjectQuery<T>.GroupBy(String, String, ObjectParameter[]) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden de queryresultaten gegroepeerd op basis van de opgegeven criteria.
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)
Parameters
- keys
- String
De belangrijkste kolommen waarop de resultaten moeten worden gegroepeerd.
- projection
- String
De lijst met geselecteerde eigenschappen waarmee de projectie wordt gedefinieerd.
- parameters
- ObjectParameter[]
Nul of meer parameters die in deze methode worden gebruikt.
Retouren
Een nieuw ObjectQuery<T> exemplaar van het type DbDataRecord dat gelijk is aan het oorspronkelijke exemplaar waarop GROUP BY is toegepast.
Uitzonderingen
De keys parameter is null of een lege tekenreeks.
– of –
De projection parameter is null of een lege tekenreeks.
Voorbeelden
In dit voorbeeld wordt een nieuw ObjectQuery<T> object gemaakt dat de resultaten bevat van de bestaande query gegroepeerd op productnaam.
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"]);
}
}
}
In dit voorbeeld wordt een set geneste gegevensrecords geretourneerd die de Contact.LastName kolom bevatten, gegroepeerd en alfabetisch gesorteerd op de eerste letter van 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]);
}
}
}
}
Opmerkingen
GroupBy past de projectie toe die is opgegeven door de projection parameter. Dit betekent dat de ObjectQuery<T> geretourneerde door de GroupBy methode altijd van het type DbDataRecordis. Zie Objectquery's voor meer informatie.