2015-10-21 9 views
5
übersetzt werden

Ich habe folgenden Code auf EF7 Beta läuft 8:EF7 und GroupBy() kann nicht

var locationGrops = from l in db.Locations 
        group l by l.ServiceType into g 
        select g; 

var list = locationGrops.ToList(); 

Wenn ich diesen Code ausführen, zeigt EF eine Warnung aus.

warning : [Microsoft.Data.Entity.Query.QueryCompilationContext] The LINQ express 
ion 'GroupBy([l].ServiceType, [l])' could not be translated and will be evaluate 
d locally. 

Die Abfrage scheint mir ziemlich einfach und es gibt GROUP BY in SQL. Gibt es eine Möglichkeit, es auf einem Server laufen zu lassen?

Antwort

4

Zu dieser Zeit werden die Gruppen von und und die meisten Unterabfragen von EF7 nicht unterstützt.

+0

das gleiche ist in 7.0.0-rc1-final; / –

1

Sie können context.Locations.FromSql(sql).ToList() verwenden, um sicherzustellen, dass Ihre Abfrage wie gewünscht auf dem Server ausgeführt wird.

0

Ein Ansatz besteht darin, eine Datenbank mit der Logik zu erstellen (was für komplexe Gruppierungen wahrscheinlich sowieso besser ist).

Im Moment ist es ein bisschen wie ein Hack um die Ansicht zu verwenden, aber hier ist es, was ich mit aufkommen, wenn Sie verwenden Gerüst:

How can I create database Views in a scaffolded DbContext in EF7/Entity Framework Core 1.0

Zusammengefasst erbe ich von der DbContext und manuell Erstellen Sie die Entitätsklasse für die Ansicht.