O código no ListaServicosProcesso está criando o contexto db. Em seguida, ele está retornando um IQueryable.
Neste ponto, nenhuma solicitação foi enviada ao banco de dados.
Então há um para cada no código. Neste ponto, o EF diz "Preciso obter os dados do banco de dados". Então ele tenta obter os dados.
Mas o banco de dados de contexto agora está fora do escopo, então ele trava, na primeira linha que tenta usar os dados.
Existem 2 maneiras de contornar isso:
- retorne uma lista do ListaServicosProcesso, isso forçará a execução da chamada do banco de dados
- mova o for each para ListaServicosProcesso
Editar
Pharabus está correto db não está fora do escopo. O problema está aqui:
db = new RENDBDataContext();
Uma nova instância do contexto está sendo criada sem que a antiga seja descartada. Tente Dispose of db no final do ListaServicosProcesso. Ainda melhor colocar db em uma instrução using. Mas então o foreach deve ser movido para dentro da instrução using.