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

Hasilkan kembali catatan basis data menggunakan LinqToSql?

Dalam hal menjalankan kueri dasar, itu bisa bekerja seperti itu (tentu saja mungkin) - namun, dalam hal menanyakan Table<T> telanjang , itu mungkin jadilah itu semua buffer dulu; Anda mungkin dapat mencoba menanyakan hitungan selama iterasi, atau menjalankan pelacakan. Dalam hal ini saya mencurigai itu akan buffer dulu.

Ditutup kembali:itu juga tergantung;p Jika seseorang menggunakan foreach , maka ya:sejak foreach secara eksplisit membuang iterator melalui finally . Namun! Tidak dijamin jika seseorang melakukannya, misalnya (sangat nakal dan lemah):

var iter = yourData.GetEnumerator();
if(iter.MoveNext()) {
    Console.WriteLine(iter.Current.Name); // first record of, say, 20
}
// and don't dispose the iterator == bad

maka karena iterator tidak a:dibuang, b:buang sendiri, dan c:tidak mogok, iterator tidak akan dimatikan dengan benar (salah satu dari 3 kondisi tersebut akan tutup dengan benar). Penekanan:ini adalah kasus patologis:biasanya cukup aman untuk mengatakan "akan ditutup, ya".

Jika Anda ingin jaminan non-buffering, perhatikan bahwa "dapper" memilikinya, jika Anda menyetel buffered menjadi false :

IEnumerable<Customer> customers = connection.Query<Customer>(
       "select * from Customer", buffered: false);

(juga dapat menangani parameter dll)



  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 Server:GROUP BY dua tingkat dengan keluaran XML

  2. Hirarki Teknologi Memori/Penyimpanan dan SQL Server

  3. Bagaimana mengelola GetDate() dengan Entity Framework

  4. Hitung Hash atau Checksum untuk tabel di SQL Server

  5. Batasan yang Dapat Ditangguhkan di SQL Server