J'ai lu qu'il est déconseillé de l'utiliser ToUpper et ToLower pour effectuer de la casse de la chaîne de comparaisons, mais je ne vois pas d'alternative quand il s'agit de LINQ-to-SQL. Le ignoreCase et CompareOptions arguments de Chaîne.Comparer sont ignorés par LINQ-to-SQL (si vous utilisez une casse de la base de données, vous obtenez une comparaison sensible à la casse, même si vous demandez une comparaison sensible à la casse). Est ToLower ou ToUpper la meilleure option ici? Est-ce mieux que les autres? Je croyais avoir lu quelque part que ToUpper était mieux, mais je ne sais pas si cela s'applique ici. (Je fais beaucoup de revues de code et tout le monde est à l'aide de ToLower.)
Dim s = From row In context.Table Where String.Compare(row.Name, "test", StringComparison.InvariantCultureIgnoreCase) = 0
Cela se traduit par une requête SQL qui compare simplement la ligne.Nom de "test" et ne reviendra pas "Test" et "Test" sur une casse de la base de données.