sql >> Database teknologi >  >> RDS >> Sqlserver

Irriterende SQL-undtagelse, sandsynligvis på grund af forkert kode

Koden i ListaServicosProcesso skaber konteksten db. Så returnerer den en IQueryable.

På dette tidspunkt er der ikke sendt nogen anmodning til databasen.

Så er der en for hver i koden. På dette tidspunkt siger EF "Jeg skal hente dataene fra databasen". Så den forsøger at få dataene.

Men konteksten db er nu uden for scope, så den går ned på den første linje, der forsøger at bruge dataene.

Der er 2 måder at omgå dette på:

  • retur en liste fra ListaServicosProcesso, dette vil tvinge databasekaldet til at udføre
  • flytt for hver ind i ListaServicosProcesso

Rediger

Pharabus har ret db er ikke uden for rækkevidde. Problemet er her:

 db = new RENDBDataContext();

En ny forekomst af konteksten oprettes uden at den gamle bortskaffes. Prøv Bortskaf db i slutningen af ​​ListaServicosProcesso. Endnu bedre placere db i en brugererklæring. Men så skal foreachen flyttes inde i bruge-sætningen.



  1. Hvordan viser man rækkenumre i PostgreSQL-forespørgsel?

  2. Hvordan krypterer jeg denne adgangskode med MD5 ved hjælp af PHP?

  3. Sådan finder du en streng i en streng i SQL Server

  4. MySQL Update Indre Join-tabeller forespørgsel