Kode di ListaServicosProcesso membuat konteks db. Kemudian ia mengembalikan sebuah IQueryable.
Pada titik ini tidak ada permintaan yang dikirim ke database.
Lalu ada untuk masing-masing dalam kode. Pada titik ini EF mengatakan "Saya perlu mendapatkan data dari database". Jadi ia mencoba untuk mendapatkan data.
Namun konteks db sekarang di luar cakupan, sehingga macet, pada baris pertama yang mencoba menggunakan data.
Ada 2 cara untuk menyiasatinya:
- mengembalikan daftar dari ListaServicosProcesso, ini akan memaksa panggilan database untuk dieksekusi
- pindahkan for masing-masing ke ListaServicosProcesso
Sunting
Pharabus benar db tidak keluar dari ruang lingkup. Masalahnya ada di sini:
db = new RENDBDataContext();
Sebuah contoh baru dari konteks sedang dibuat tanpa membuang yang lama. Coba Buang db di akhir ListaServicosProcesso. Bahkan lebih baik menempatkan db dalam pernyataan using. Tapi kemudian foreach harus dipindahkan ke dalam pernyataan using.