sql >> Base de Datos >  >> RDS >> Sqlserver

Molesta excepción de SQL, probablemente debido a algún código mal hecho

El código en ListaServicosProcesso está creando el contexto db. Entonces está devolviendo un IQueryable.

En este momento no se ha enviado ninguna solicitud a la base de datos.

Entonces hay un para cada uno en el código. En este punto, EF dice "Necesito obtener los datos de la base de datos". Así que intenta obtener los datos.

Pero la base de datos de contexto ahora está fuera del alcance, por lo que falla en la primera línea que intenta usar los datos.

Hay 2 formas de evitar esto:

  • devuelve una lista de ListaServicosProcesso, esto forzará la ejecución de la llamada a la base de datos
  • mover for each a ListaServicosProcesso

Editar

Pharabus es correcto db no está fuera de alcance. El problema está aquí:

 db = new RENDBDataContext();

Se crea una nueva instancia del contexto sin desechar la anterior. Pruebe Dispose of db al final de ListaServicosProcesso. Aún mejor coloque db en una declaración de uso. Pero entonces el foreach debe moverse dentro de la declaración de uso.