sql >> Databáze >  >> RDS >> Sqlserver

Nepříjemná výjimka SQL, pravděpodobně kvůli nějakému špatně provedenému kódu

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.



  1. Našel někdo efektivní způsob, jak uložit hodnoty BSON ObjectId v databázi SQL?

  2. Vložte vstup klienta do databáze MySQL pomocí C

  3. Vytvořit více než jednu proceduru v souboru SQL?

  4. Vygenerujte řádek tabulky s hodnotami <td> z DB PHP