Mysql
 sql >> Datenbank >  >> RDS >> Mysql

LINQ to Entities erkennt die Methode „System.String ToString()“ nicht, und diese Methode kann nicht in einen Speicherausdruck übersetzt werden

Speichern Sie einfach die Zeichenfolge in einer temporären Variablen und verwenden Sie diese dann in Ihrem Ausdruck:

var strItem = item.Key.ToString();

IQueryable<entity> pages = from p in context.pages
                           where  p.Serial == strItem
                           select p;

Das Problem entsteht, weil ToString() nicht wirklich ausgeführt wird, wird es in einen umgewandelt Methodengruppe und dann analysiert und in SQL übersetzt. Da es kein ToString() gibt entspricht, schlägt der Ausdruck fehl.

Hinweis:

Sehen Sie sich auch Antwort von Alex bezüglich der SqlFunctions Helferklasse, die später hinzugefügt wurde. In vielen Fällen kann es die temporäre Variable überflüssig machen.