2010-08-18 94 views
6

我有一个简单的SQL语句。Linq to SQL“不喜欢”运算符

选择从表名不同的值,其中值不喜欢“%TEST%”

我怎样写这在LINQ to SQL语法。

我试过下面的说法,但它似乎没有工作。

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

你不需要使用%测试%的百分比中包含。 – 2010-08-18 14:50:57

回答

12

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

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

忍者。 - 你怎么能这么快。 – Femaref 2010-08-18 14:49:43

+2

他有一个用C#编写的自动回复的AI。 – 2010-08-18 14:51:49

+0

哇。那很快。谢谢......像魅力一样工作。 – mahesh 2010-08-18 15:06:16

2

如果你坚持的SQL相匹配的模式,你可以使用SqlMethods.Like

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