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

LINQ to Entities non riconosce il metodo 'System.String ToString()' e questo metodo non può essere convertito in un'espressione store

Basta salvare la stringa in una variabile temporanea e quindi usarla nella tua espressione:

var strItem = item.Key.ToString();

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

Il problema sorge perché ToString() non viene realmente eseguito, viene trasformato in un Gruppo di metodi e quindi analizzato e tradotto in SQL. Poiché non esiste ToString() equivalente, l'espressione non riesce.

Nota:

Assicurati di controllare anche Risposta di Alex per quanto riguarda le SqlFunctions classe di supporto che è stata aggiunta in seguito. In molti casi può eliminare la necessità della variabile temporanea.