Mysql
 sql >> Base de données >  >> RDS >> Mysql

LINQ to Entities ne reconnaît pas la méthode 'System.String ToString()', et cette méthode ne peut pas être traduite en une expression de magasin

Enregistrez simplement la chaîne dans une variable temporaire, puis utilisez-la dans votre expression :

var strItem = item.Key.ToString();

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

Le problème se pose car ToString() n'est pas vraiment exécuté, il est transformé en un GroupeMéthode puis analysé et traduit en SQL. Puisqu'il n'y a pas de ToString() équivalent, l'expression échoue.

Remarque :

Assurez-vous également de vérifier Réponse d'Alex concernant les SqlFunctions classe d'assistance qui a été ajoutée plus tard. Dans de nombreux cas, cela peut éliminer le besoin de la variable temporaire.