Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencapai Perbandingan Sensitif Kes dalam LINQ dengan Entiti?

Bagaimana untuk Mencapai Perbandingan Sensitif Kes dalam LINQ dengan Entiti?

DDD
Lepaskan: 2025-01-21 17:41:09
asal
716 orang telah melayarinya

How to Achieve Case-Sensitive Comparisons in LINQ to Entities?

Mencapai Perbandingan Sensitif Kes dalam LINQ dengan Entiti

Pertanyaan LINQ kepada Entiti, seperti Thingies.First(t => t.Name == "ThingamaBob"), mungkin tidak sensitif huruf besar-besaran secara lalai. Ini disebabkan oleh LINQ kepada Entiti yang menterjemah ungkapan Lambda ke dalam SQL, dengan kepekaan huruf besar bergantung pada tetapan pengumpulan pangkalan data SQL Server.

Penyelesaian Peringkat Pangkalan Data: Mengubah Suai Pengumpulan

Cara paling berkesan untuk memastikan perbandingan sensitif huruf besar-besaran adalah dengan mengubah susunan lajur kepada pilihan sensitif huruf besar-besaran. Sebagai contoh, untuk menjadikan lajur Name dalam Thingies jadual sensitif huruf besar-kecil, gunakan arahan SQL ini:

<code class="language-sql">ALTER TABLE Thingies
ALTER COLUMN Name VARCHAR(25)
COLLATE Latin1_General_CS_AS</code>
Salin selepas log masuk

Pendekatan Sisi Pelanggan: Menggunakan LINQ untuk Objek

Jika pengubahsuaian pengumpulan pangkalan data tidak dapat dilaksanakan, penyelesaian pihak klien menggunakan LINQ to Objects menyediakan alternatif. Ini melibatkan pertanyaan pangkalan data awal diikuti dengan perbandingan dalam memori menggunakan AsEnumerable(). Contoh:

<code class="language-csharp">Thingies.Where(t => t.Name == "ThingamaBob")
        .AsEnumerable()
        .First(t => t.Name == "ThingamaBob");</code>
Salin selepas log masuk

Ini melakukan semakan sensitif huruf besar dalam memori selepas penapisan pangkalan data awal. Ambil perhatian bahawa kaedah ini mungkin kurang berprestasi berbanding perubahan penyusunan bahagian pelayan.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Perbandingan Sensitif Kes dalam LINQ dengan Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan