Bagikan melalui


ObjectQuery<T>.GroupBy(String, String, ObjectParameter[]) Metode

Definisi

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.LastNamehuruf 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.

Berlaku untuk

Lihat juga