Po prostu zapisz ciąg w zmiennej tymczasowej, a następnie użyj jej w swoim wyrażeniu:
var strItem = item.Key.ToString();
IQueryable<entity> pages = from p in context.pages
where p.Serial == strItem
select p;
Problem pojawia się, ponieważ ToString()
tak naprawdę nie jest wykonywany, jest przekształcany w Grupa metod
a następnie przeanalizowane i przetłumaczone na SQL. Ponieważ nie ma ToString()
równoważne, wyrażenie kończy się niepowodzeniem.
Uwaga:
Upewnij się, że sprawdziłeś również Odpowiedź Alexa
dotyczące SqlFunctions
klasa pomocnicza, która została dodana później. W wielu przypadkach może to wyeliminować potrzebę zmiennej tymczasowej.