Ich habe eine Entity-Klasse mit Datum-Uhrzeit-Feld, ich möchte ein anderes Datum-Zeit-Feld auswählen und die Drop-down-Liste füllen.
Der folgende Code gibt mir den Fehler:
%Vor%Fehlermeldung:
LINQ to Entities erkennt nicht die Methode 'System.String ToString (System.String) 'Methode und Diese Methode kann nicht in übersetzt werden ein Speicherausdruck.
Wie kann ich diese Fehlermeldung korrigieren?
Danke SR
Denken Sie daran, dass Ihre Abfrage in SQL übersetzt und an die Datenbank gesendet wird. Ihr Versuch, das Datum zu formatieren, wird in der Abfrage nicht unterstützt, weshalb Sie diese bestimmte Fehlermeldung sehen. Sie müssen die Ergebnisse abrufen und dann formatieren, nachdem die Daten materialisiert wurden.
Eine Option besteht darin, einfach das Datum so auszuwählen, wie es ist. Wenn Sie über das Ergebnis iterieren, formatieren Sie es so, wie Sie es zu Ihrer Liste hinzufügen. Sie können aber auch die Konstruktion der Liste mit dem formatierten Datum in einer einzigen Anweisung erreichen, indem Sie die Methodenverkettung verwenden.
%Vor% Die Methode .AsEnumerable()
wird die Ausführung des ersten Teils der Abfrage gegen die Datenbank erzwingen und der Rest wird mit den Ergebnissen im Speicher arbeiten.
Hier ist eine Alternative:
%Vor% Anscheinend DateName("MM", ..)
buchstabiert den Namen des Monats, wobei DatePart("mm", ..)
einen numerischen Wert liefert, also StringConvert( )
, aber dieser link puffert das Ergebnis mit Leerzeichen, also die .Trim()
.
Wie Anthony Pegram oben gesagt hat, geschieht dies in der Datenbank und nicht in C # ( .AsEnumerable()
zieht alle Daten lokal nach C #, also stellen Sie sicher, dass Sie Daten filtern, bevor Sie sie verwenden.)
Offensichtlich möchten Sie die Ausgabe leicht an die Art yyyy-MM
anpassen und entweder DatePart für die Ziffer oder DateName für den Monatsnamen verwenden.
Ich habe einen Workaround verwendet, um die Formate mit yyyy
und MM
manuell zu erstellen. Ich möchte es hier erwähnen, wenn es jemandem (zumindest vorübergehend) helfen könnte:
das macht das Format yyyy-MM
Tags und Links c# linq entity-framework-4 linq-to-entities