ObjectQuery<T>.GroupBy(String, String, ObjectParameter[]) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.LastName
gö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ı.