Apenas salve a string em uma variável temporária e use isso em sua expressão:
var strItem = item.Key.ToString();
IQueryable<entity> pages = from p in context.pages
where p.Serial == strItem
select p;
O problema surge porque
ToString()
não é realmente executado, é transformado em um MethodGroup
e, em seguida, analisado e traduzido para SQL. Como não há ToString()
equivalente, a expressão falha. Observação:
Verifique também resposta de Alex sobre as
SqlFunctions
classe auxiliar que foi adicionada posteriormente. Em muitos casos, pode eliminar a necessidade da variável temporária.