LINQtoSQL Fehler: Sequenzoperatoren werden für Typ 'System.String' nicht unterstützt

8

Aus irgendeinem Grund funktioniert mein Code nicht.

%Vor%

Ich möchte alle IDs auswählen, die Duplikate in einer Tabelle sind, also verwende ich die Anzahl! = 1 und ich bekomme diesen Fehler.

NotSupportedException: Sequenzoperatoren werden für den Typ 'System.String'

nicht unterstützt

Hilfe bitte?

    
SpoiledTechie.com 25.11.2008, 16:12
quelle

2 Antworten

13

tan.ID.ToString() ist eine Zeichenfolge, keine Auflistung, daher können Sie Count () nicht anwenden.

Ich glaube, du willst etwas wie: (Diese Syntax ist falsch, aber nahe)

%Vor%

Update (nach 5 Jahren minus 5 Tagen): (Es ist ein bisschen seltsam für Google ein Problem und finde eine Antwort, die DU geschrieben hast ..) Im Kern dieses Problems ist die LINQ-Anweisung versucht eine SQL-Anweisung zu erstellen, und die Datenbank weiß nicht, wie man Count () auf eine Zeichenkette anwendet. Wenn Sie jedoch LINQ für eine Auflistung im Speicher verwenden, würde die Zeichenfolge als IEnumerable behandelt und die Funktion Count () würde problemlos funktionieren.

    
James Curran 25.11.2008, 16:21
quelle
5

James 'Antwort ist nahe an dem, was ich denke, dass Sie wollen, wenn Sie nur wollen, dass der Wert des ID selbst mit seinem geht. Wenn Sie möchten, dass das Objekt der ID zugewiesen wird, versuchen Sie dies.

%Vor%

Nicht der sauberste Weg, es in LINQ zu tun, bin ich mir sicher. Wenn ich einen saubereren Weg finde, um es zu tun, werde ich es hier bearbeiten. Das SelectMany ist wichtig, da es die Liste der Objekte aus dem IGrouping flacht.

    
David 25.11.2008 16:29
quelle

Tags und Links