LINQ to Entities group by und Count ()

8

Ich habe die folgende LINQ-to-Entities-Abfrage

%Vor%

das gegen dieses Schema läuft

%Vor%

und gibt diese Meldung aus, wenn in Q ein Datensatz vorhanden ist und in P kein entsprechender Datensatz vorhanden ist: "Die Umwandlung in Werttyp 'Int32' ist fehlgeschlagen, da der materialisierte Wert null ist. Entweder der generische Parameter des Ergebnistyps oder die Abfrage muss a verwenden Nullable Typ. "

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 () anstelle von 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 in Group and Count in Linq issue aussieht , aber ich habe gerade eine andere Nachricht bekommen.

Ich habe auch Group and Count im Entity Framework (und a Anzahl der anderen), aber das Problem ist anders.

    
Jim S 23.01.2013, 03:45
quelle

2 Antworten

13

group Schlüssel kann nicht null sein

%Vor%

PS.

  1. Meistens benötigen Sie in Entity Framework keine JOIN-Syntax. siehe: Verwandte Entitäten laden

  2. Schreiben beschreibender bedeutungsvoller Variablennamen würde Ihre Codes erheblich verbessern und verständlich machen. Lesbarkeit spielt in der realen Produktion eine Rolle.

aifarfa 23.01.2013 04:57
quelle
4

Ich habe Probleme beim Lesen Ihres Formats. Aber kannst du es versuchen:

%Vor%

Mit DefaultIfEmpty und x => x.RK != null sind die Änderungen.

    
Joe 23.01.2013 04:53
quelle