SQL Server CE 4 Entity Framework 4.3.1 Code First поиск без учета диакритических знаков и регистра

Я использую EF 4.3.1 Code First с базой данных SQL Server CE 4, он отлично работает, без проблем создал все таблицы и базу данных.

Но теперь у меня возникает эта проблема. Я запрашиваю базу данных с помощью LINQ.

using (var db = new PeopleContext())
{    
      var people = from e1 in db.People
                   where e1.Name.Contains("maria")
                   select e1;
}

Я хотел бы получить в результатах каждого человека, имя которого содержит María или Maria или maría или maria - обратите внимание на ударение в i - í

Мне нужен поиск без учета диакритических знаков и регистра

Заранее благодарю за любую помощь


Обновление: хорошо, я нашел способ сделать это на стороне .NET, используя string.Compare()

string.Compare(string1, string2, CultureInfo.CurrentCulture,
CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase);

Флаг IgnoreNonSpace игнорирует диакритические знаки, а флаг IgnoreCase игнорирует регистр.


person dalexsoto    schedule 18.04.2012    source источник


Ответы (1)


SQL Server Compact поддерживает только CI_AS (не CI_AI) — см. http://msdn.microsoft.com/en-us/library/ms174596(v=sql.105).aspx — поэтому вы должны использовать другой продукт базы данных или хранить доступную для поиска версию ваших данных в другом столбце.

person ErikEJ    schedule 18.04.2012
comment
Эй, Эрик, спасибо за ваш ответ, еще одна вещь, поскольку моя база данных очень мала, всего около 300 строк, есть ли способ сделать поиск без учета акцента и регистра внутри списка ?? ссылка на объекты =) - person dalexsoto; 21.04.2012
comment
нечувствителен к регистру, да, с использованием форматирования .NET, не уверен насчет акцента - person ErikEJ; 21.04.2012