Kod w ListaServicosProcesso tworzy bazę danych kontekstu. Następnie zwraca IQueryable.
W tym momencie żadne żądanie nie zostało wysłane do bazy danych.
Następnie w kodzie jest dla każdego. W tym momencie EF mówi „muszę pobrać dane z bazy danych”. Próbuje więc uzyskać dane.
Ale baza danych kontekstu jest teraz poza zakresem, więc ulega awarii w pierwszym wierszu, który próbuje użyć danych.
Można to obejść na dwa sposoby:
- zwróć listę z ListaServicosProcesso, wymusi to wykonanie wywołania bazy danych
- przenieś dla każdego do ListaServicosProcesso
Edytuj
Pharabus jest poprawny db nie jest poza zakresem. Problem jest tutaj:
db = new RENDBDataContext();
Tworzone jest nowe wystąpienie kontekstu bez usuwania starego. Spróbuj usunąć db na końcu ListaServicosProcesso. Jeszcze lepiej umieść db w instrukcji using. Ale wtedy foreach musi być przesunięty wewnątrz instrukcji using.