使用Linq从Oracle查找非常特定的模式

时间:2018-06-26 20:29:00

标签: linq sql-like contains

我正在使用.net替换php应用程序,并希望在某些情况下寻找非常具体的字符串模式。

我一直在使用以下代码替换此SQL语句

喜欢%SMITH%的地方

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

这很好用,但是我被告知我还​​需要寻找一种特殊的图案,如下所示

在哪里喜欢%“%SMITH%”%

会发现类似以下的内容。

“ CAPTAIN JOHN V.SMITH”

我尝试使用此代码来复制查询,但返回0次点击

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

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

看起来像这样

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