ObjectQuery<T>.GroupBy(String, String, ObjectParameter[]) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengelompokkan hasil kueri menurut kriteria yang ditentukan.
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
Kolom kunci untuk mengelompokkan hasilnya.
- projection
- String
Daftar properti yang dipilih yang menentukan proyeksi.
- parameters
- ObjectParameter[]
Nol atau lebih parameter yang digunakan dalam metode ini.
Mengembalikan
Instans baru ObjectQuery<T> jenis DbDataRecord yang setara dengan instans asli dengan GROUP BY diterapkan.
Pengecualian
Parameternya query
adalah null
atau string kosong.
-atau-
Parameternya projection
adalah null
atau string kosong.
Contoh
Contoh ini membuat objek baru ObjectQuery<T> yang berisi hasil kueri yang sudah ada yang dikelompokkan menurut nama produk.
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"]);
}
}
}
Contoh ini mengembalikan sekumpulan rekaman data berlapis yang berisi Contact.LastName
kolom, dikelompokkan, dan diurutkan menurut abjad Contact.LastName
huruf pertama .
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]);
}
}
}
}
Keterangan
GroupBy menerapkan proyeksi yang ditentukan oleh projection
parameter . Ini berarti bahwa yang ObjectQuery<T> dikembalikan oleh GroupBy metode selalu berjenis DbDataRecord. Untuk informasi selengkapnya, lihat Kueri Objek.