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.