2010-06-18 5 views
5

Est-il possible de définir par défaut une comparaison de chaîne de structure d'entité non sensible à la casse?Rendre Entity Framework insensible à la casse

Si je

string.StartsWith("stringToCompare", StringComparison.CurrentCultureIgnoreCase) 

cela fonctionne. Mais quand j'ai besoin d'utiliser

string.Contains("strigToCompare") 

il n'a pas de surcharge.

+1

SQL est de toute façon insensible à la casse et EF ne délègue que ses requêtes SQL, EF ne contrôle pas le cas, je pense que c'est le problème de collation de votre base de données. –

Répondre

3

Vous pouvez simplement changer le cas des deux champs à Majuscules:

String stringToCompare = "Some String"; 

string.ToUpper().Contains(stringToCompare.ToUpper()) 

Cela rendra le cas insensible à la casse recherche en convertissant tous les cas supérieur. Bien sûr, ToLower() fonctionnerait aussi bien.

+0

Cela casserait pour le test "Foo" et "Foobar". étant donné que foobar contient foo. Ce n'est peut-être pas l'égalité que vous recherchez. – Jafin

+4

L'affiche demande l'insensibilité à la casse lors de l'utilisation de la fonction Contient(). L'exemple "Foo" & "Foobar" retournerait "vrai", ce qui est le résultat souhaité. –