Bonjour,
J'ai une requête linq avec un contains et je souhaite rendre cela case insensitive pour ignorer les majuscules et aussi les ascents sur les lettre
Bonjour,
J'ai une requête linq avec un contains et je souhaite rendre cela case insensitive pour ignorer les majuscules et aussi les ascents sur les lettre
Salut,
Tout dépend si tu es dans un contexte d'éxécution :
Si ta requête Linq est sur une liste d'objet chargée en mémoire, tu peux utiliser la classe CultureInfo pour virer les accents et les CompareOptions pour ignorer la casse.
Si ta requête Linq est destinée a être "traduite" en SQL (Par exemple, sur un DbSet), alors tu es limité aux classes retranscrissibles en SQL donc tu ne peux pas utiliser le CultureInfo ou d'autres classe du framework .Net. Dans ce cas, il faudrai comparer le string d'entrée en majuscule (ou minuscule) sans accent avec l'équivalent en base de données. Avec du Linq, ca me parrai compliqué. Je pense que ca sera moins prise de tête avec une procédure stockée.
Je connais pas d'autres méthodes, mais je pense que des gens ont déjà du se pencher sur le sujet et ont surement trouvé une solution plus performante.
Salut,
Cote base de donne la methode .ToLower() est supportee donc une epxression comme celle ci devrias marcher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part context.Personnes.Where(p=>p.Nom.ToLower() == "rambo")
Partager