0

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

我一直在使用下面的代码来替换这个 SQL 语句

FOO 喜欢 %SMITH% 的地方

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

这很好用,但是我被告知我还​​需要能够寻找像下面这样的特殊模式

在哪里 FOO 喜欢 %"%SMITH%"%

那会找到类似下面的东西。

“约翰·V·史密斯船长”

我试图使用此代码来复制查询,但它返回 0 个命中

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

任何帮助将不胜感激。

4

1 回答 1

0

看起来这行得通

   query = query.Where(x => x.PARTIES.Any(y => 
       (y.PNAME.StartsWith("\"") 
   && 
       y.PNAME.EndsWith("\"") 
   && 
       y.PNAME.Contains(predicate.PartyName) )));
于 2018-06-27T13:28:14.727 回答