Si la requête LINQ est exécutée dans le contexte de base de données, un appel à l' Contains()
est mappé à l' LIKE
opérateur:
.Where(a => a.Field.Contains("hello"))
devient Field LIKE '%hello%'
. L' LIKE
opérateur est insensible à la casse par défaut, mais qui peut être modifié par la modification du classement de la colonne.
Si la requête LINQ est exécutée .NET, vous pouvez utiliser IndexOf(), mais cette méthode n'est pas pris en charge dans LINQ to SQL.
LINQ to SQL ne prend pas en charge les méthodes qui prennent un CultureInfo comme paramètre, probablement parce qu'il ne peut pas garantir que le serveur SQL server gère les cultures le même que .NET. Ce n'est pas tout à fait vrai, car il n' soutien StartsWith(string, StringComparison)
.
Cependant, il ne semble pas à l'appui d'une méthode qui évalue LIKE
dans LINQ to SQL, et à une comparaison de la casse .NET, rendant impossible d'ignorer la casse Contient() de manière systématique.