sql >> Databasteknik >  >> RDS >> Sqlserver

Irriterande SQL-undantag, förmodligen på grund av att någon kod gjort fel

Koden i ListaServicosProcesso skapar kontexten db. Sedan returnerar den en IQueryable.

För närvarande har ingen begäran skickats till databasen.

Sedan finns det en för varje i koden. Vid det här laget säger EF "Jag måste hämta data från databasen". Så den försöker få tag i data.

Men kontexten db är nu utanför räckvidden, så den kraschar, på den första raden som försöker använda data.

Det finns två sätt att komma runt detta:

  • retur en lista från ListaServicosProcesso, detta tvingar databasanropet att köras
  • flytta för varje till ListaServicosProcesso

Redigera

Pharabus har rätt db är inte utanför räckvidd. Problemet är här:

 db = new RENDBDataContext();

En ny instans av sammanhanget skapas utan att den gamla tas bort. Försök Kasta db i slutet av ListaServicosProcesso. Ännu bättre placera db i ett användande uttalande. Men då måste foreachen flyttas in i using-satsen.



  1. SQL Server Blocking Query

  2. Referens till oinitierad samling PL/SQL

  3. Mysql-tabellreparation misslyckades:Kan inte skapa ny tempfil

  4. PHP och mysql infogas inte