Как использовать подстановочные знаки в функции EF Core Like - PullRequest
2 голосов
/ 15 апреля 2019

.NET Core 2.2.0

Я бы хотел использовать Wildcards в EF Core функции Like, но она не работает так, как я ожидаю, и я читал об этом в некоторых сообщениях (лучший пример здесь )

Мой код:

List<string> list = new List<string>();
list.Add("Hi fransois");
list.Add("Hi francois");
list.Add("Hi françois");

List<string> testa = list.Where(a => EF.Functions.Like(a, "%francois%")).ToList();      // Results in 1 hit, as expected
List<string> testb = list.Where(b => EF.Functions.Like(b, "%françois%")).ToList();      // Results in 1 hit, as expected
List<string> testc = list.Where(c => EF.Functions.Like(c, "%fran[cç]ois%")).ToList();   // Results in 0 hits, EXPECTED: 2

Почему эта работа не работает, как ожидалось?

1 Ответ

0 голосов
/ 17 апреля 2019

К сожалению, похоже, это не сработает. Но есть обходной путь с использованием Regex:

    Regex regex = new Regex("fran[cç]ois");
    List<string> testd = list.Where(d => regex.IsMatch(d)).ToList();

Это работает.

...