Oftmals ist es sinnvoll eine Datenbankabfrage in SQL zu schreiben und das Ergebnis im Entity Framework als Entität zu verwenden.
Allerdings gibt es meist bei aggregierten Views Probleme, da für das EF kein Primary Key vorhanden ist. Das EF erstellt automatisch einen zusammengesetzten Key für alle Spalten in der Tabelle, die nicht null sein können. Daher reicht es, wenn man im View sicherstellt, dass die Spalten “not nullable” sind.
Folgendes SQL Statement kann in EF nicht verwendet werden:
SELECT
Quartal,KPIFK, Sum(Zahl) as Zahl FROM Planwert
group by Quartal, KPIFK
Wenn allerdings rund um die Spalten Quartal und KPIFK jeweils eine isnull-Funktion gesetzt wird, kann das EF einen Primary-Key bilden und der View kann in EF eingebunden werden. Der View ist wie folgt zu schreiben:
SELECT
isnull (Quartal,'Q') as quartal,
isnull( KPIFK,-1) as KPIFK, Sum(Zahl) as Zahl FROM Planwert
group by Quartal, KPIFK