Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

sementara di IDataReader.Read tidak berfungsi dengan pengembalian hasil tetapi foreach pada pembaca tidak

Ini bukan while vs foreach yang membuat perbedaan. Ini adalah panggilan ke .Cast<T>() .

Dalam sampel pertama, Anda menghasilkan sama objek dalam setiap iterasi dari loop while. Jika Anda tidak hati-hati, Anda akhirnya menyelesaikan iterator hasil sebelum benar-benar menggunakan data, dan DataReader sudah akan dibuang. Ini dapat terjadi jika Anda, misalnya, memanggil .ToList() setelah memanggil metode ini. Hal terbaik yang dapat Anda harapkan adalah agar setiap rekaman dalam daftar memiliki nilai yang sama.
(Tips profesional:sebagian besar waktu Anda tidak ingin memanggil .ToList() sampai Anda benar-benar harus melakukannya. Lebih baik bekerja dengan catatan IEnumerable).

Dalam contoh kedua, saat Anda memanggil .Cast<T>() pada datareader, Anda secara efektif membuat salinan data saat iterasi melalui setiap catatan. Sekarang Anda tidak lagi menghasilkan objek yang sama.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menyimpan datetime di MySQL dengan info zona waktu

  2. Tidak dapat membuat koneksi JDBC ke MySQL (menggunakan Java, IntelliJ, dan Linux)

  3. Ukuran indeks di MySQL

  4. MySQL - Haruskah saya menggunakan kunci utama multi-kolom di setiap tabel anak?

  5. Mendapatkan Tabel tidak ada kesalahan, tetapi tabel memang ada (ActiveRecord::StatementInvalid Mysql2::Error:Tabel tidak ada)