Maison >développement back-end >C++ >Comment résoudre l'erreur « LINQ to Entities ne reconnaît pas la méthode 'System.String ToString()' » ?

Comment résoudre l'erreur « LINQ to Entities ne reconnaît pas la méthode 'System.String ToString()' » ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-22 09:21:09342parcourir

How to Resolve the

Dépannage de l'erreur « LINQ to Entities ne reconnaît pas 'System.String ToString()' »

Lors de la migration des données MySQL vers SQL Server, une erreur courante se produit : LINQ to Entities ne parvient pas à reconnaître la méthode System.String ToString(), empêchant la traduction en requête de base de données. Cela se produit généralement lors de la comparaison de chaînes dans une clause LINQ where.

La solution consiste à stocker le résultat de la chaîne de ToString() dans une variable temporaire avant de l'utiliser dans la requête. Cela traite efficacement la chaîne comme une constante, permettant une traduction SQL réussie. Voici comment procéder :

<code class="language-csharp">var strItem = item.Key.ToString();

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

En attribuant item.Key.ToString() à strItem, le résultat de la méthode devient une valeur constante comprise par le traducteur LINQ to Entities.

Alternativement, comme suggéré par Alex (référence nécessaire pour le contexte), la classe d'assistance SqlFunctions propose des méthodes spécialisées pour les requêtes LINQ to Entities, éliminant potentiellement le besoin d'une variable temporaire. Consultez la solution d'Alex pour des instructions détaillées sur l'utilisation de SqlFunctions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn