Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 55374|Jawab: 2

[Sumber] EF Core Series 4 melihat pernyataan SQL yang dihasilkan

[Salin tautan]
Diposting pada 19/02/2021 13.36.34 | | | |
EF Core Series 2 merangkum OnModelCreating, membuat indeks menggunakan refleksi, dan lainnya
https://www.itsvse.com/thread-9392-1-1.html

Seri EF Core (3) Atribut Bayangan Bingkai Entitas [Cetak Ulang]
https://www.itsvse.com/thread-9558-1-1.html


Dalam pengembangan, saat menggunakan kerangka kerja inti ef, saat menggunakan ekspresi linq atau lambda, kami tidak dapat secara langsung melihat pernyataan sql, yang tidak nyaman bagi kami untuk memecahkan masalah atau mengoptimalkan kinerja.
ef menampilkan pernyataan SQL yang dihasilkan
https://www.itsvse.com/thread-3813-1-1.html

Artikel ini menggunakan EF Core 5 sebagai contohuntuk melihat pernyataan SQL yang dihasilkan oleh EF output.


Pertama, buat variabel pabrik consolelogger baru dalam file startup dengan variabel "ConsoleLoggerFactory", dan pernyataan sql yang dihasilkan akan dikeluarkan ke konsol, kodenya adalah sebagai berikut:

Tambahkan output log ke metode ConfigureServices dengan mengonfigurasi kode DbContext sebagai berikut:

Mulai proyek dan lihat output konsol sebagai berikut:

info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Menjalankan DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      PILIH [a]. [Id], [a]. [Dinonaktifkan], [a]. [Tautan], [a]. [Nama], [a]. [PinYin], [a]. [Posisi], [a]. [_CreateTime], [a]. [_CreateTimeStamp], [a]. [_UpdateTime], [a]. [_UpdateTimeStamp]
      DARI [Area] AS [a]
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Menjalankan DbCommand (19ms) [Parameters=[p0='?' (Ukuran = 4000)], CommandType='Teks', CommandTimeout='30']
      PILIH * DARI Area DI MANA pinYin = @p0
info: Microsoft.EntityFrameworkCore.Database.Command[20101]
      Menjalankan DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']
      PILIH * DARI Area


Jika pernyataan SQL dengan kondisi where hanya dapat melihat variabel berparameter, bukan nilai spesifik yang dilewati, konfigurasi berikut ditambahkan:

Aktifkan data aplikasi untuk disertakan dalam pesan pengecualian, log, dan lainnya.

Ini dapat mencakup nilai yang ditetapkan ke properti instans entitas,

nilai parameter perintah yang dikirim ke database, dan data serupa lainnya.

Bendera ini hanya boleh diaktifkan jika ada langkah-langkah keamanan

Berdasarkan sensitivitas data ini.

Perhatikan jika aplikasi sedang berjalan

Panggil Microsoft.EntityFrameworkCore.DbContextOptions generator.UseInternalServiceProvider(system. IServiceProvider),

Opsi ini kemudian harus dikonfigurasi dengan cara yang sama untuk semua penggunaan penyedia layanan tersebut.

Pertimbangkan untuk tidak memanggil Microsoft.EntityFrameworkCore.DbContextOptionsGenerator.UseInternalServiceProvider(system. Penyedia Wakil)

Oleh karena itu, EF akan mengelola penyedia layanan dan dapat membuat instance baru sesuai kebutuhan


Pengaturan lengkapnya adalah sebagai berikut:

Renderingnya adalah sebagai berikut:



Tentu saja, pengaturan di atas juga dapat dikonfigurasi dengan mengganti metode OnConfiguring dari DbContext (tidak disarankan):

(Akhir)




Mantan:Peringkat Analisis Saham Financial TipRanks
Depan:Seri EF Core (5) mengeksekusi pernyataan atau tampilan SQL, prosedur tersimpan
 Tuan tanah| Diposting pada 26/09/2021 09.21.07 |
ef menampilkan pernyataan SQL yang dihasilkan
https://www.itsvse.com/thread-3813-1-1.html
Diposting pada 26/10/2021 09.46.19 |
Belajar, lihat bagaimana batas waktunya
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com