Ich habe die folgenden LINQ-to-Entities-AbfrageLINQ to Gruppe Entities durch und Count()
from r in ctx.Rs
join p in ctx.Ps on r.RK equals p.RK
group r by r.QK into gr
select new { QK = (int)gr.Key, Num = gr.Count() }
, die gegen dieses Schema läuft
Table P Table R Table Q
PK*
RK ----> RK*
Text QK ------> QK*
Text Text
und gibt diese Meldung, wenn es einen Datensatz in Q mit keinem entsprechenden Datensatz in P: "Die Umwandlung in Werttyp 'Int32' ist fehlgeschlagen, da der materialisierte Wert null ist. Entweder der generische Parameter des Ergebnistyps oder die Abfrage müssen einen Nullwerttyp verwenden."
Das Problem ist die gr.Count() in der letzten Zeile, aber ich kann keine Lösung finden. Ich habe versucht, gr für null zu testen, kann aber keinen Weg finden, der funktioniert.
Ich habe eine Reihe von Lösungen für ein ähnliches Problem mit Sum() statt Count() gesehen, aber ich war nicht in der Lage, sie an mein Problem anzupassen.
Ich habe versucht, meine Abfrage so zu ändern, dass sie wie die in Group and Count in Linq issue aussieht, aber ich habe gerade eine andere Nachricht erhalten.
Ich schaute auch auf Group and Count in Entity Framework (und eine Reihe von anderen), aber das Problem ist anders.
Danke für die Beantwortung. Leider gibt dies immer noch die gleiche Nachricht. –