sql >> Database teknologi >  >> RDS >> Mysql

LINQ to Entities genkender ikke metoden 'System.String ToString()'-metoden, og denne metode kan ikke oversættes til et butiksudtryk

Gem bare strengen til en temp-variabel og brug den i dit udtryk:

var strItem = item.Key.ToString();

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

Problemet opstår fordi ToString() ikke rigtigt udføres, er den forvandlet til en Metodegruppe og derefter parset og oversat til SQL. Da der ikke er nogen ToString() tilsvarende, udtrykket mislykkes.

Bemærk:

Sørg også for at tjekke Alex' svar vedrørende SqlFunctions hjælperklasse, der blev tilføjet senere. I mange tilfælde kan det eliminere behovet for den midlertidige variabel.



  1. PostgreSQL langsom på et stort bord med arrays og masser af opdateringer

  2. Escape streng Python til MySQL

  3. Gennemfør Laravel 8 Soft Slet &Gendan slettede optegnelser Tutorial

  4. Udskiftning af SQL-markører med alternativer for at undgå præstationsproblemer