GroupBy nihayet Entity Framework Core 2.1 Sürüm Adayı 1’de çalışıyor

Womanne

Member
Entity Framework Core 2.1 Sürüm Adayı 1’de yapılan testler, LINQ GroupBy operatörünü SQL’e dönüştürmenin artık gerçekten işe yaradığını gösteriyor. Nihayet!


Microsoft’un yeni OR eşleştiricisi Entity Framework Core’un büyük bir zayıflığı olduğunu defalarca belirttim, LINQ operatörü Gruplandır() muhabirde değil GRUPLANDIRMAYA GÖRE SQL’de, ancak tüm veri kümelerini RAM’e yüklemek ve onları orada gruplandırmak, bu, birçok veri kümesiyle bir performans felaketidir. Daha yakın bir zamanda Entity Framework 2.1 Önizleme 1’de çalışması gerektiğini bildirdim, ancak aslında yalnızca bazı durumlarda çalıştı.

Bugün şunu bildirebilirim: Entity Framework Core 2.1 Sürüm Adayı 1’deki testlerim, LINQ GroupBy operatörünü SQL’e çevirmenin gerçekten işe yaradığını gösteriyor. Nihayet!

Bu LINQ komutundan:

// Ermittele die Anzahl der Flüge pro Abflugort
using (var ctx = new WWWingsContext())
{
var gruppen = from p in ctx.FlugSet
orderby p.FreiePlaetze
group p by p.Abflugort into g
select new { Ort = g.Key, Anzahl = g.Count() };
Console.WriteLine("Anzahl: " + gruppen.Count());
// Ausgabe
foreach (var g in gruppen.ToList())
{
Console.WriteLine(g.Ort + ": " + g.Anzahl);
}
}

Bu SQL artık Entity Framework Core sürüm 2.1 Sürüm Adayı 1’de oluşturulmuştur:

SELECT [p].[Departure] AS [City], COUNT(*) AS [Count]
FROM [Flight] AS [p]
GROUP BY [p].[Departure]
HAVING COUNT(*) > 5
ORDER BY [Count]


()





Haberin Sonu
 
Üst