Использование Linq для поиска очень специфического шаблона от Oracle - PullRequest
0 голосов
/ 26 июня 2018

Я заменяю php-приложение, используя .net, и я хочу в некоторых случаях искать очень специфический ШАБЛОН строки.

Я использовал приведенный ниже код для замены этого оператора SQL

ГДЕ FOO LIKE% SMITH%

 query = query.Where(x => x.PARTIES.Any(y => y.PNAME.ToUpper().Contains(predicate.PartyName.ToUpper())));

Это прекрасно работает, однако мне сообщили, что мне нужно также иметь возможность искать специальный шаблон, подобный приведенному ниже

ГДЕ FOO LIKE% "% SMITH%"%

Это нашло бы что-то вроде ниже.

"КАПИТАН ДЖОН В.СМИТ"

Я пытался использовать этот код для репликации запроса, но он возвращает 0 хитов

string s = string.Format("%\"%SMITH%\"%", predicate.PartyName);
query = query.Where(x => x.PARTIES.Any(y => y.PNAME.Contains(s)));

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 июня 2018

Похоже, это работает

   query = query.Where(x => x.PARTIES.Any(y => 
       (y.PNAME.StartsWith("\"") 
   && 
       y.PNAME.EndsWith("\"") 
   && 
       y.PNAME.Contains(predicate.PartyName) )));
...