LINQ版本的SQL LIKE语句

时间:2010-03-29 09:55:40

标签: sql linq

我是LINQ的新手,在网上搜索模仿SQL的LIKE语句的LINQ样本并不满足我自己。

我想要的是产生与此SQL

相同的查询结果
SELECT * FROM table_1 WHERE column_1 LIKE '__0%'

我想从table_1查询column_1的第三个字符是'0'

LINQ中是否有等效声明

:D谢谢

4 个答案:

答案 0 :(得分:9)

您可以使用SqlMethods课程。它是System.Data.Linq(a.k.a. LINQ to SQL)的一部分。

from item in db.Table1
where SqlMethods.Like(item.Column1, "__0%")
select item;

答案 1 :(得分:8)

喜欢来自以下方法:StartsWithEndsWithContains。试着和他们一起玩。

答案 2 :(得分:0)

试试这个(我现在无法测试):

from t in table_1
where t.column_1[2] == '0'
select t;

答案 3 :(得分:0)

在您的确切情况下(假设column_1是一个字符串):

from t in table_1
where !String.IsNullOrEmpty(t.column_1) && t.column_1.Length >= 3 && t.column_1[2] == '0'
select t;

当然,如果您需要更通用的解决方案,那么您可以使用处理器中的整个.NET库,并且可以使用一些复杂的模式匹配API(如正则表达式):

var regex = new Regex("..0.*");
var qry = from t in table_1
          where regex.Match(t.column_1).Success
          select t;