sql >> Database >  >> RDS >> Sqlserver

Vervelende SQL-uitzondering, waarschijnlijk vanwege een fout in de code

De code in ListaServicosProcesso maakt de context db. Dan retourneert het een IQueryable.

Op dit moment is er geen verzoek verzonden naar de database.

Dan is er een voor elk in de code. Op dit punt zegt EF:"Ik moet de gegevens uit de database halen". Dus het probeert de gegevens te krijgen.

Maar de context-db valt nu buiten het bereik, dus het crasht op de eerste regel die de gegevens probeert te gebruiken.

Er zijn 2 manieren om dit te omzeilen:

  • retourneer een lijst van ListaServicosProcesso, hierdoor wordt de database-aanroep gedwongen uit te voeren
  • verplaats de voor elk naar ListaServicosProcesso

Bewerken

Pharabus heeft gelijk db valt niet buiten het bereik. Het probleem is hier:

 db = new RENDBDataContext();

Er wordt een nieuwe instantie van de context gemaakt zonder dat de oude wordt verwijderd. Probeer Verwijder db aan het einde van ListaServicosProcesso. Nog beter plaats db in een gebruiksverklaring. Maar dan moet de foreach binnen de gebruiksverklaring worden verplaatst.



  1. Hibernate-dialect voor MySQL 8?

  2. MySQL-tabel is gemarkeerd als gecrasht en laatste (automatische?) reparatie is mislukt

  3. EF5:Kan het bestand '{0}' niet toevoegen als database '{1}'

  4. Schakel het SA-account in SQL Server uit (T-SQL-voorbeeld)