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

Bagaimana untuk Melakukan Perbandingan Sensitif Kes dengan LINQ kepada Entiti?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-21 17:56:10753semak imbas

How to Perform Case-Sensitive Comparisons with LINQ to Entities?

Penjelasan terperinci tentang perbandingan sensitiviti kes dalam LINQ kepada Entiti

Pertanyaan LINQ kepada Entiti berikut:

<code class="language-c#">Thingies.First(t => t.Name == "ThingamaBob");</code>

Oleh kerana LINQ kepada Entiti menukar ungkapan lambda kepada pernyataan SQL, tiada perbandingan sensitif huruf besar-besaran dilakukan. Pengumpulan SQL_Latin1_General_CP1_CI_AS yang digunakan oleh SQL Server secara lalai tidak sensitif huruf besar-besaran.

Penyelesaian bahagian pelayan

Untuk mendayakan perbandingan sensitif huruf besar-besaran, gunakan perintah SQL berikut untuk menukar himpunan lajur Nama dalam jadual Thingies kepada COLLATE Latin1_General_CS_AS:

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

Penyelesaian pelanggan

Sebagai alternatif, anda boleh menggunakan LINQ ke Objek untuk melakukan perbandingan sensitif huruf besar-besaran, tetapi ini kurang cekap:

<code class="language-c#">Thingies.Where(t => t.Name == "ThingamaBob")
        .AsEnumerable()
        .First(t => t.Name == "ThingamaBob");</code>

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

Kenyataan:
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