Linq to SQL“不喜欢”运算符

时间:2010-08-18 14:46:06

标签: sql linq

我有一个简单的SQL语句。

从tablename中选择不同的值,其值不像'%TEST%'

如何用Linq to SQL语法编写它。

我尝试了以下声明但它似乎无法正常工作。

var p = (from c in tablename where !(c.value.ToUpper().Contains("%TEST%")) 
        select c.Value).Distinct().ToList()

2 个答案:

答案 0 :(得分:13)

问题是“%” - 你正在寻找一些字面上不包含“%TEST%”的东西,这可能就是一切。我想你的意思是:

var p = (from c in tablename
         where !c.Value.ToUpper().Contains("TEST")
         select c.Value).Distinct().ToList()

答案 1 :(得分:4)

如果您遇到了匹配的sql模式,可以使用SqlMethods.Like

string pattern = "%TEST%";
  ...
from c in tablename
where !SqlMethods.Like(c.Value, pattern)
select c