Maison >développement back-end >C++ >Comment effectuer des comparaisons sensibles à la casse avec LINQ to Entities ?

Comment effectuer des comparaisons sensibles à la casse avec LINQ to Entities ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-21 17:56:10751parcourir

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

Explication détaillée de la comparaison de sensibilité à la casse dans LINQ to Entities

La requête LINQ to Entities suivante :

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

Étant donné que LINQ to Entities convertit les expressions lambda en instructions SQL, aucune comparaison sensible à la casse n'est effectuée. Le classement SQL_Latin1_General_CP1_CI_AS utilisé par défaut par SQL Server n'est pas sensible à la casse.

Solution côté serveur

Pour activer les comparaisons sensibles à la casse, utilisez la commande SQL suivante pour modifier le classement de la colonne Nom dans la table Thingies en COLLATE Latin1_General_CS_AS :

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

Solution client

Vous pouvez également utiliser LINQ to Objects pour effectuer une comparaison sensible à la casse, mais c'est moins efficace :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn