LINQ to SQL:如何编写'Like'选择?

时间:2008-09-18 12:17:18

标签: linq-to-sql

我有以下SQL:

select * from transaction_log where stoptime like '%2008%'

如何用LINQ to SQL语法编写它?

6 个答案:

答案 0 :(得分:30)

如果你想使用文字方法,就像这样:

var query = from l in transaction_log
            where SqlMethods.Like(l.stoptime, "%2008%")
            select l;

另一种选择是:

var query = from l in transaction_log
        where l.stoptime.Contains("2008")
        select l;

如果是日期时间:

var query = from l in transaction_log
        where l.stoptime.Year = 2008
        select l;

该方法位于 System.Data.Linq.SqlClient 命名空间

答案 1 :(得分:1)

from x in context.Table where x.Contains("2008") select x

答案 2 :(得分:1)

如果stoptime数据类型是字符串,则可以使用.Contains()函数,还可以使用.StartsWith()和.EndsWith()。

答案 3 :(得分:0)

如果你使用contains to方法,那么你正在做一个LIKE'%somestring%'。如果使用startswith方法,那么它与'somestring%'相同。最后,endswith与使用'%somestring'相同。

总而言之,contains将在字符串中找到任何模式,但beginwith和endswith将帮助您在单词的开头和结尾找到匹配项。

答案 4 :(得分:0)

真正有趣的一点是,当你在上下文中使用“from x”时,.NET会创建类似“select * from table where name''test test%'”的查询。其中x.Contains(“test”)选择x “这令人印象深刻

答案 5 :(得分:0)

谢谢 - 很好的答案。

实际上,这是一个DateTime类型;我不得不将“停止时间”命名为:

var query = from p in dbTransSummary.Transaction_Logs
    where ( (DateTime) p.StopTime).Year == dtRollUpDate.Year
    select

小点。它很棒!