Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Досадно SQL изключение, вероятно поради грешен код

Кодът в ListaServicosProcesso създава контекстната база данни. След това връща IQueryable.

На този етап няма изпратена заявка към базата данни.

След това има за всеки в кода. В този момент EF казва „Трябва да получа данните от базата данни“. Така че се опитва да получи данните.

Но контекстната база данни вече е извън обхвата, така че се срива на първия ред, който се опитва да използва данните.

Има 2 начина да заобиколите това:

  • връща списък от ListaServicosProcesso, това ще принуди извикването на базата данни да се изпълни
  • преместете за всеки в ListaServicosProcesso

Редактиране

Pharabus е правилен db не е извън обхвата. Проблемът е тук:

 db = new RENDBDataContext();

Създава се нов екземпляр на контекста, без старият да се изхвърля. Опитайте да изхвърлите db в края на ListaServicosProcesso. Още по-добре поставете db в израз за използване. Но тогава foreach трябва да бъде преместен вътре в оператора using.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проверете пространството, използвано от таблица в SQL Server

  2. Неуспешно преобразуване при преобразуване на стойността на varchar „няма“ към тип данни int

  3. DevOps решения за автоматизация на разработка на бази данни

  4. Как да намерите низ в низ в SQL Server

  5. SQL Server заявка за намиране на всички текущи имена на база данни