Kód v ListaServicosProcesso vytváří kontext db. Potom vrací IQueryable.
V tomto okamžiku nebyl do databáze odeslán žádný požadavek.
Pak je v kódu pro každou z nich. V tomto okamžiku EF říká "Potřebuji získat data z databáze". Pokusí se tedy získat data.
Ale kontextová databáze je nyní mimo rozsah, takže se zhroutí na prvním řádku, který se pokouší použít data.
Existují 2 způsoby, jak to obejít:
- vrácení seznamu z ListaServicosProcesso, to vynutí provedení volání databáze
- přesuňte pro každý do ListaServicosProcesso
Upravit
Pharabus má pravdu db není mimo rozsah. Problém je zde:
db = new RENDBDataContext();
Vytváří se nová instance kontextu, aniž by byla stará instance vyřazena. Zkuste Dispose of db na konci ListaServicosProcesso. Ještě lepší je umístit db do příkazu using. Potom se však foreach musí přesunout do příkazu using.