Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pengecualian SQL yang mengganggu, mungkin karena beberapa kode salah

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Delete membersihkan tabel alih-alih membuat kesalahan

  2. Apakah rollback diperlukan jika kueri dilengkapi dengan kesalahan?

  3. Hashing kata sandi ke dalam SQL

  4. Hasil Query Email sebagai Tabel HTML di SQL Server (T-SQL)

  5. SQL Inner Join Pada Nilai Null