Aracılığıyla paylaş


ObjectQuery<T>.GroupBy(String, String, ObjectParameter[]) Yöntem

Tanım

Sorgu sonuçlarını belirtilen ölçütlere göre gruplandırın.

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)

Parametreler

keys
String

Sonuçların gruplandırıldığı anahtar sütunlar.

projection
String

Projeksiyonu tanımlayan seçili özelliklerin listesi.

parameters
ObjectParameter[]

Bu yöntemde kullanılan sıfır veya daha fazla parametre.

Döndürülenler

GROUP BY uygulanmış özgün örneğe eşdeğer yeni ObjectQuery<T> bir tür DbDataRecord örneği.

Özel durumlar

query parametresi veya boş bir dizedirnull.

-veya-

projection parametresi veya boş bir dizedirnull.

Örnekler

Bu örnek, ürün adına göre gruplandırılmış mevcut sorgunun sonuçlarını içeren yeni ObjectQuery<T> bir nesne oluşturur.

    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"]);
        }
    }
}

Bu örnek, ilk harfine Contact.LastNamegöre alfabetik olarak gruplandırılmış ve sıralanmış sütununu içeren Contact.LastName bir dizi iç içe veri kaydı döndürür.

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]);
            }
        }
    }
}

Açıklamalar

GroupBy parametresi tarafından belirtilen projeksiyonu projection uygular. Bu, yöntemi tarafından döndürülen öğesinin GroupBy her zaman türünde DbDataRecordolduğu anlamına gelirObjectQuery<T>. Daha fazla bilgi için bkz. Nesne Sorguları.

Şunlara uygulanır

Ayrıca bkz.