【问题标题】:Linq to SQL "not like" operatorLinq to SQL“不喜欢”运算符
【发布时间】:2010-08-18 14:46:06
【问题描述】:

我有一个简单的 SQL 语句。

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

如何在 Linq to SQL 语法中编写此代码。

我尝试了下面的语句,但它似乎不起作用。

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

【问题讨论】:

  • 您不需要在 Contains 中使用 %TEST% 的百分比。

标签: sql linq


【解决方案1】:

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

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

【讨论】:

  • 忍者。 -.- 你怎么能这么快。
  • 他有一个用 C# 编写的带有自动回复功能的 AI。
  • 哇。那很快。谢谢..像魅力一样工作。
  • 这也不会返回NULL记录,如果你需要NULL然后添加额外的条件比如c.Value == null
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多