Fehlerbehebung bei der LINQ to Entities-Ausnahme „System.String ToString()“
Während der Datenbankmigration von MySQL zu SQL Server kann die Verwendung von LINQ to Entities diesen Fehler auslösen:
<code>LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.</code>
Dies geschieht, weil LINQ to Entities kein direktes SQL-Äquivalent für die ToString()
-Methode hat.
Auflösung
Die Lösung beinhaltet die Vorverarbeitung der String-Konvertierung:
<code class="language-csharp">var strItem = item.Key.ToString(); IQueryable<entity> pages = from p in context.pages where p.Serial == strItem select p;</code>
Durch vorheriges Ausführen von ToString()
erfolgt die Konvertierung im Speicher, außerhalb der Datenbankabfrage.
Zusätzliche Überlegungen:
SqlFunctions
Hilfsklasse für SQL-kompatible Zeichenfolgenkonvertierungen.ToString()
überflüssig. Möglicherweise reicht ein direkter Vergleich aus, um den Fehler vollständig zu beseitigen.Das obige ist der detaillierte Inhalt vonWarum löst LINQ to Entities während der Migration von MySQL zu SQL Server eine „System.String ToString()'-Ausnahme aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!