ObjectQuery<T>.GroupBy(String, String, ObjectParameter[]) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gruppiert die Abfrageergebnisse nach den angegebenen Kriterien.
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)
Parameter
- keys
- String
Die Schlüsselspalten, nach denen die Ergebnisse gruppiert werden sollen.
- projection
- String
Die Liste der ausgewählten Eigenschaften, die die Projektion definieren.
- parameters
- ObjectParameter[]
Null oder mehr Parameter, die in dieser Methode verwendet werden.
Gibt zurück
Eine neue ObjectQuery<T> Instanz vom Typ DbDataRecord , die der ursprünglichen Instanz entspricht, auf die GROUP BY angewendet wurde.
Ausnahmen
Der keys Parameter ist null oder eine leere Zeichenfolge.
- oder -
Der projection Parameter ist null oder eine leere Zeichenfolge.
Beispiele
In diesem Beispiel wird ein neues ObjectQuery<T> Objekt erstellt, das die Ergebnisse der vorhandenen Abfrage nach Produktname gruppiert enthält.
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 diesem Beispiel wird eine Reihe geschachtelter Datensätze zurückgegeben, die die Contact.LastName Spalte enthalten, nach dem ersten Buchstaben Contact.LastNamealphabetisch gruppiert und sortiert sind.
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]);
}
}
}
}
Hinweise
GroupBy wendet die vom Parameter angegebene Projektion an projection . Dies bedeutet, dass die ObjectQuery<T> von der GroupBy Methode zurückgegebene Methode immer vom Typ DbDataRecordist. Weitere Informationen finden Sie unter Objektabfragen.