我是LINQ的新手,在网上搜索模仿SQL的LIKE语句的LINQ样本并不满足我自己。
我想要的是产生与此SQL
相同的查询结果SELECT * FROM table_1 WHERE column_1 LIKE '__0%'
我想从table_1查询column_1的第三个字符是'0'
LINQ中是否有等效声明
:D谢谢
答案 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)
喜欢来自以下方法:StartsWith
,EndsWith
和Contains
。试着和他们一起玩。
答案 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;