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

Melihat: 3654|Jawab: 0

[Sumber] Pernyataan EF SQL SECARA OTOMATIS menghasilkan IS NULL atau IS NOT NULL

[Salin tautan]
Diposting pada 21/06/2023 22.42.18 | | | |
Persyaratan: Ketika EF menggunakan ekspresi linq to sql atau lambda untuk mengkueri database, pernyataan SQL yang dihasilkan oleh EF akan membantu kami menambahkan beberapa kondisi IS NULL atau NOT NULL.

Contoh 1:

Ini menghasilkan pernyataan SQL seperti ini:

PILIH
    [Luas2]. [Status Pengguna] AS [Status Pengguna],
    [Luas1]. [Id] AS [Id]
    DARI [dbo]. [Info Email] AS [Luas1]
    BERGABUNG DALAM [dbo]. [Akun] AS [Extent2] ON ([Extent1].[ Alamat] = [Luas2]. [Surel]) ATAU (([Extent1].[ Alamat] ADALAH NULL) DAN ([Extent2].[ Email] ADALAH NULL))



Contoh 2:

Ini menghasilkan pernyataan SQL seperti ini:

PILIH
    [Luas1]. [Id] AS [Id],
    [Luas1]. [Nama] AS [Nama],
    [Luas1]. [ParentId] AS [ParentId],
    [Luas1]. [Posisi] AS [Posisi],
    [Luas1]. [_CreateTime] SEBAGAI [_CreateTime],
    [Luas1]. [_UpdateTime] SEBAGAI [_UpdateTime]
    DARI [dbo]. [Klasifikasi] AS [Luas1]
    WHERE ([Extent1].[ Nama] IN (N'Android', N'Solaris')) DAN ([Extent1].[ Nama] BUKAN NULL)



Jika Anda ingin menghindari EF menghasilkan kondisi NULL tambahan ini, Anda dapat merujuk ke hal berikut.

Mengonfigurasi properti DbContextConfiguration.UseDatabaseNullSemantics

Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan menampilkan semantik null database saat membandingkan dua operan dan keduanya cenderung nol. Nilai defaultnya adalah false.

Kodenya adalah sebagai berikut:


Misalnya:
Jika UseDatabaseNullSemantics benar, maka (operand1 == operand2) akan dikonversi menjadi (operand1 = operand2);
Jika UseDatabaseNullSemantics false, itu akan dikonversi menjadi (((operand1 = operand2) DAN (NOT (operand1 ADALAH NULL ATAU operand2 ADALAH NULL))) atau ((operand1 ADALAH NULL) DAN (operand2 ADALAH NULL))).

Dokumentasi (Ada kesalahan dalam deskripsi dokumentasi):Login hyperlink terlihat.

untuk menambahkan atribut [Wajib]

Setelah EF menambahkan atribut [Required] ke properti objek, EF sebenarnya tidak mengizinkan atribut (bidang) menjadi NULL dalam database.Setelah menjalankan perintah migrasi, bidang tidak diizinkan menjadi NULLKarena bidang tidak diizinkan menjadi NULL dalam database, EF secara alami tidak menghasilkan beberapa pemeriksaan NULL dalam pernyataan SQL yang dihasilkan untuk bidang tersebut.

Referensi:Login hyperlink terlihat.






Mantan:ASP.NET Opsi konfigurasi Inti (dua puluh satu) adalah perbedaan antara AddOptions dan Configure
Depan:Ajax-hook untuk pengembangan web mencegat semua permintaan XMLHttpRequest
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