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!