Ваше сопоставление French_CI_AS "чувствительно к регистру", "чувствительно к акценту". Если вы хотите, чтобы запрос "marches" совпадал с "marchés", вам нужно French_CI_AI в качестве сопоставления. В большинстве языков это НЕ то, чего хотят носители языка, потому что акценты семантически важны, но это может зависеть от обстоятельств или контекста.
Если ваши пользователи действительно хотят выполнять поиск без учета акцента, вам следует установить для этого свойства сопоставления значение AI вместо AS в таблице (или в определенных полях). В противном случае, если необходимость редкая, вы можете применить сопоставление к таблице в MS Sql для каждого запроса; имейте в виду, что если для этого сопоставления нет индекса, это может привести к значительным потерям производительности. Однако это может быть почти несущественно, когда вы выполняете запрос% wildcard%, так как в любом случае у вас в любом случае будет полное сканирование таблицы.
Последнее, что я проверил, было невозможно указать параметры сортировки в запросе Linq напрямую, поэтому, если вы делаете нечувствительность к регистру на разовой основе, вам нужно будет использовать прямой запрос к SQL через ваш контекст данных.
Отредактировано:
Исходя из вашего комментария, звучит так, как будто вы разрешаете хранить контент HTML в вашей базе данных. В вашей таблице есть числовые символьные ссылки, о которых SQL Server ничего не знает, поскольку они являются функцией HTML, XML и SGML. Вы можете сделать этот поиск доступным, только если эти символы являются строковыми литералами в подходящей кодировке.
NVARCHAR будет хранить контент в Unicode, в частности UTF-16, а VARCHAR будет использовать Windows-1252 с французским сопоставлением.
Если вы принимаете этот ввод через веб-формы, убедитесь в правильности кодировки страницы. Если вы поддерживаете только современные браузеры (по сути, все, что IE5 +), UTF-8 хорошо поддерживается, поэтому вам следует рассмотреть возможность использования UTF-8 для всех ваших запросов и ответов.
Убедитесь, что в вашем файле web.config есть что-то вроде этого:
<configuration>
<system.web>
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8" />
</system.web>
</configuration>
Если у вас уже есть данные, хранящиеся с этими числовыми ссылками в вашей базе данных, вы можете удалить их, переведя & # ddddd; в буквальные последовательности UTF-16 и сохраните их снова. Убедитесь, что вы случайно не удалили семантически важные NCR, такие как «больше, меньше» или «амперсанд» и кодовые точки.