Вот еще один способ обойти проблему:
std::min(9, int(test::N));
(я думаю, что ответ Crazy Eddie правильно описывает, почему проблема существует.)
Никогда не используйте .ToLower ()
для выполнения сравнения без учета регистра. Вот почему:
НИЖНИЙ
вместо =
с сортировкой без учета регистра. Вместо этого используйте StringComparison.OrdinalIgnoreCase
или StringComparison.CurrentCultureIgnoreCase
:
var q = from f in Context.Foos
where f.Bar.Equals("hi", StringComparison.OrdinalIgnoreCase)
select f;
Но для Contains ()
есть проблема: В отличие от Equals
, StartsWith
и т. Д., У него нет перегрузки для аргумента StringComparison
. Почему? Хороший вопрос; спросите у Microsoft.
Это в сочетании с ограничением SQL Server на LOWER
означает, что нет простого способа делать то, что вы хотите.
Возможные обходные пути могут включать:
Equals
или StartsWith
вместо этого, если это возможно для вашей задачи