LINQ to Entities-group by und Count()

Habe ich die folgende LINQ-to-Entities-Abfrage

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() }

läuft gegen dieses schema

Table P  Table R   Table Q
 PK*
 RK ----> RK*
 Text     QK ------> QK*
          Text       Text

und gibt diese Meldung aus, wenn dort ist jeder Datensatz in Q ohne entsprechenden Datensatz in P: "Die Besetzung an den Werttyp 'Int32' ist fehlgeschlagen, da die materialisierte Wert null ist. Entweder der Ergebnis-Typ des generischen Parameters oder der Abfrage muss eine null-Typ".

Das problem ist die gr.Count() in der letzten Zeile, aber ich kann nicht finden eine Lösung. Ich habe versucht zu testen gr für null, aber nicht finden können, ein Weg, der funktioniert.

Ich habe gesehen, eine Reihe von Lösungen für ein ähnliches problem mit Sum() statt Count(), aber ich habe nicht in der Lage, passen Sie zu meinem problem.

Ich versucht, meine Abfrage Aussehen, die man in Group und Zählen in Linq-Problem, aber ich habe gerade eine andere Nachricht.

Schaute mich auch Group und Zählen in Entity Framework (und einige andere), aber das problem ist anders.

InformationsquelleAutor Jim S | 2013-01-23
Schreibe einen Kommentar