sql >> Databáze >  >> RDS >> Mysql

LINQ to Entities nerozpoznává metodu 'System.String ToString()' a tuto metodu nelze přeložit do výrazu store.

Stačí uložit řetězec do dočasné proměnné a poté ji použít ve svém výrazu:

var strItem = item.Key.ToString();

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

Problém nastává, protože ToString() se ve skutečnosti neprovede, změní se na MethodGroup a poté analyzovat a přeložit do SQL. Protože neexistuje ToString() ekvivalent, výraz selže.

Poznámka:

Nezapomeňte se také podívat na Alexova odpověď ohledně SqlFunctions pomocná třída, která byla přidána později. V mnoha případech může eliminovat potřebu dočasné proměnné.



  1. Extrahování celkového počtu sekund z datového typu intervalu

  2. Jak shrnout časové pole v SQL Server

  3. Jak vyvinout offline první nativní aplikaci pro Android

  4. PostgreSQL dočasné tabulky