Mysql
 sql >> Baza danych >  >> RDS >> Mysql

LINQ to Entities nie rozpoznaje metody „System.String ToString()” i tej metody nie można przetłumaczyć na wyrażenie sklepu

Po prostu zapisz ciąg w zmiennej tymczasowej, a następnie użyj jej w swoim wyrażeniu:

var strItem = item.Key.ToString();

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

Problem pojawia się, ponieważ ToString() tak naprawdę nie jest wykonywany, jest przekształcany w Grupa metod a następnie przeanalizowane i przetłumaczone na SQL. Ponieważ nie ma ToString() równoważne, wyrażenie kończy się niepowodzeniem.

Uwaga:

Upewnij się, że sprawdziłeś również Odpowiedź Alexa dotyczące SqlFunctions klasa pomocnicza, która została dodana później. W wielu przypadkach może to wyeliminować potrzebę zmiennej tymczasowej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 najlepszych narzędzi do monitorowania MySQL

  2. Jak zabezpieczyć serwery MySQL/MariaDB

  3. Aktualizuj dane w bazie danych MySQL

  4. Jak wstawić wartości w tabeli z kluczem obcym za pomocą MySQL?

  5. Mysql Konwertuj kolumnę na wiersz (tabela przestawna)