Я считаю, что такое сопоставление не предусмотрено в текущих версиях SQLite. Таким образом, может показаться, что наиболее разумный план - удалить сортировку из запроса и вместо этого выполнить последующую сортировку в чистом .Net, где у вас есть полный контроль и доступ к конструкциям, таким как информация о культуре потока.
Поскольку и то и другое происходит в В том же процессе это не должно иметь большого значения с точки зрения производительности, если только ваш набор данных не очень большой.
SQLite 3 действительно допускает определяемые пользователем функции сопоставления, и это может быть выполнено в SQLite.Net как функции .net, но накладные расходы на вызов назад и вперед через управляемую / неуправляемую границу. Вот один человек пытается сделать это на c ++ . Если у вас нет доступа к кому-то другому ' Существует благословенная сборка SQLite, которая интегрирует библиотеку ICU для «правильной» поддержки юникода при упорядочивании / вроде / вверху / внизу, но вам нужно будет интегрировать это в код sqlite, используемый в качестве поддержки для. Сетчатая обертка. Это много непросто.
SQLite.NET позволяет определять пользовательские функции на C #, которые можно использовать в запросах SQL. Таким образом, должно быть возможно написать функцию custom_upper или custom_lower на C #, которая будет обрабатывать преобразование регистра с текущим сопоставлением языка и региональных параметров ...
AFAIK, некоторые попытки были сделаны в стандартной библиотеке python, но они не увенчались успехом. Подробнее см. Ограниченное выполнение .
Предупреждение
В Python 2.3 эти модули были инвалид из-за различных известных и не легко устранимые дыры в безопасности. В модули все еще описаны здесь, чтобы помощь в чтении старого кода, который использует В некоторых культурах правила другие, и без знания, на какой культуре вы хотите основывать их, становится невозможно. Рассмотрим известный (среди молодежи) пример турецкий .