Maison >base de données >tutoriel mysql >Pourquoi LINQ to Entities lève-t-il une exception « System.String ToString() » lors de la migration de MySQL vers SQL Server ?
Dépannage de l'exception LINQ to Entities 'System.String ToString()'
Lors de la migration de la base de données de MySQL vers SQL Server, l'utilisation de LINQ to Entities peut déclencher cette erreur :
<code>LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression.</code>
Cela se produit parce que LINQ to Entities ne dispose pas d'un équivalent SQL direct pour la méthode ToString()
.
Résolution
La solution implique de prétraiter la conversion de chaîne :
<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 effectuant ToString()
au préalable, la conversion se fait en mémoire, en dehors de la requête de la base de données.
Considérations supplémentaires :
SqlFunctions
pour les conversions de chaînes compatibles SQL.ToString()
est redondant. Une comparaison directe pourrait suffire, éliminant complètement l’erreur.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!