Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melakukan Perbandingan Sensitif Kes dengan LINQ kepada Entiti?
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!