Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O LINQ to Entities não reconhece o método 'System.String ToString()' e esse método não pode ser convertido em uma expressão de armazenamento


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.