19 may 2011

The query results cannot be enumerated more than once

Este error se debe justamente a lo que indica, es decir, "los resultados de la consulta no pueden enumerarse mas de una vez". Afortunadamente la solución es simple, basta con convertirlos a lista añadiéndole un ".toList()" al final. Es indiferente a ejecutar una query o un procedimiento almacenado.

Ejemplo que provoca el error:
var resultados = bdDataContext.EjecutarProcedimientoAlmacenado(Parametros);
foreach(EjecutarProcedimientoAlmacenadoReuslts resultado in resultados)
{
      Procesar(resultado);
}

Ejemplo correcto:
var resultados = bdDataContext.EjecutarProcedimientoAlmacenado(Parametros).toList();
foreach(EjecutarProcedimientoAlmacenadoReuslts resultado in resultados)
{
      Procesar(resultado);
}