sql >> Base de Datos >  >> RDS >> Mysql

LINQ to Entities no reconoce el método 'System.String ToString()' y este método no se puede traducir a una expresión de almacenamiento

Simplemente guarde la cadena en una variable temporal y luego utilícela en su expresión:

var strItem = item.Key.ToString();

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

El problema surge porque ToString() no se ejecuta realmente, se convierte en un Grupo de métodos y luego analizado y traducido a SQL. Como no hay ToString() equivalente, la expresión falla.

Nota:

Asegúrese de consultar también Respuesta de Alex con respecto a las SqlFunctions clase auxiliar que se agregó más tarde. En muchos casos, puede eliminar la necesidad de la variable temporal.