sql >> Databasteknik >  >> RDS >> Mysql

LINQ to Entities känner inte igen metoden 'System.String ToString()' och den här metoden kan inte översättas till ett butiksuttryck

Spara bara strängen till en tempvariabel och använd den sedan i ditt uttryck:

var strItem = item.Key.ToString();

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

Problemet uppstår eftersom ToString() inte riktigt körs, den förvandlas till en Metodgrupp och sedan tolkat och översatt till SQL. Eftersom det inte finns någon ToString() motsvarande, uttrycket misslyckas.

Obs!

Se till att du också kolla in Alex svar angående SqlFunctions hjälparklass som lades till senare. I många fall kan det eliminera behovet av den temporära variabeln.



  1. Träffmarkering i fulltextsökning

  2. Är det möjligt att utföra korsdatabasfrågor med PostgreSQL?

  3. Hur man visar tabelldata tydligare i oracle sqlplus

  4. Känn till relationer mellan alla tabeller i databasen i SQL Server