PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

MultipleActiveResultSets untuk model data entitas postgresql dan ado.net

Multiple Active Result Sets (MARS) adalah fitur yang diperkenalkan di SQL Server 2005 dan tidak tersedia di sistem database lain seperti postgres sehingga Anda tidak akan dapat mengaktifkannya di string koneksi.

Kesalahan yang Anda hadapi adalah hasil dari mencoba melakukan dua kueri pada satu pembaca data terbuka. Saat menggunakan Entity Framework yaitu biasanya terjadi bila Anda memiliki Lazy Loading dihidupkan dan properti lazy dimuat di pembaca yang sama dengan entitas induk. Misalnya kode yang mirip dengan ini dapat menghasilkan kesalahan ini:

var users = context.Users.Where(u => u.FirstName.StartsWith("Ha"));
foreach (var user in users)
{
    Console.WriteLine(user.Address.StreetName);
}

Di baris pertama tidak ada data yang diambil karena kami hanya menyiapkan kueri Linq. Saat kita memulai foreach sebuah DataReader dibuka dan kumpulan pengguna yang memenuhi ketentuan kami ditanyai tetapi pembaca tidak ditutup. Kemudian di dalam foreach kami mencapai properti Alamat Pengguna yang malas dimuat. Beban lambat ini menyebabkan eksekusi kueri pada DataReader terbuka yang sama dan saat itulah pengecualian terjadi. Jika saya ingin menghilangkan kesalahan, saya cukup menambahkan ToList() (atau apa pun yang menyebabkan kueri tampil) hingga akhir baris seperti ini:

var users = context.Users.Where(u => u.FirstName.StartsWith("Ha")).ToList();

Semoga ini bisa membantu Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah kita selalu mengambil kolom tanggal sebagai string (varchar) dengan knex dan postgres?

  2. Cara terbaik untuk menyimpan waktu di atas 24:00:00 di postgresql?

  3. Fungsi rasio_ke_laporan postgres

  4. kunci baris sampai selanjutnya pilih postgres

  5. Dapatkan semua posting dengan jumlah suara dan jika pengguna saat ini memilih setiap posting