如何编写与SQL一样的LINQ函数?

时间:2009-11-05 15:52:55

标签: linq

如何编写具有以下sql相同功能的linq,如:

select * from table where col like param?

5 个答案:

答案 0 :(得分:4)

Table.Where(t => t.col.Contains(param));

......应该这样做。

答案 1 :(得分:4)

来自:http://blogs.microsoft.co.il/blogs/bursteg/archive/2007/10/16/linq-to-sql-like-operator.aspx

深入研究System.Data.Linq.SqlClient命名空间,我发现了一个名为SqlMethods的小助手类,在这种情况下它非常有用。 SqlMethods有一个名为Like的方法,可以在Linq to SQL查询中使用:

var query = from c in ctx.Customers
            where SqlMethods.Like(c.City, "L_n%")
            select c;

此方法获取要检查的字符串表达式(在此示例中为客户的城市),并提供与要在SQL中编写LIKE子句的方式相同的测试模式。

使用上面的查询生成了所需的SQL语句:

SELECT CustomerID, CompanyName, ...
FROM   dbo.Customers
WHERE  City LIKE [L_n%]

答案 2 :(得分:2)

var selection = records.Where (r => r.Col.Contains (param));

答案 3 :(得分:0)

var item = from SomeCollection where someCondition select I;

答案 4 :(得分:0)

您可以在Linq中使用与Sql Like相同的contains子句。您可以找到以下代码。

var query = from e in emp where e.name.Contains("Mark") select e;