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.
- projection
- String
Die Liste ausgewählter Eigenschaften, mit denen die Projektion definiert wird.
- parameters
- ObjectParameter[]
Null oder mehr Parameter, die in dieser Methode verwendet werden.
Gibt zurück
Eine neue ObjectQuery<T>-Instanz des Typs DbDataRecord, die der ursprünglichen Instanz entspricht, für die jedoch GROUP BY festgelegt ist.
Ausnahmen
Der query
-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 bestehenden 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 ein Satz geschachtelter Datensätze zurückgegeben, die die Contact.LastName
Spalte enthalten, gruppiert und alphabetisch sortiert nach dem ersten Buchstaben von 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]);
}
}
}
}
Hinweise
GroupBy wendet die durch den projection
Parameter angegebene Projektion an. Dies bedeutet, dass die von der ObjectQuery<T>-Methode zurückgegebene GroupBy stets den Typ DbDataRecord aufweist. Weitere Informationen finden Sie unter Objektabfragen.