SQL的LINQ版本';这是一个类似的说法
我是LINQ的新手,在网上搜索模仿SQL语句的LINQ示例并不能让我满意 我想要的是生成与此SQL相同的查询结果SQL的LINQ版本';这是一个类似的说法,sql,linq,Sql,Linq,我是LINQ的新手,在网上搜索模仿SQL语句的LINQ示例并不能让我满意 我想要的是生成与此SQL相同的查询结果 SELECT * FROM table_1 WHERE column_1 LIKE '__0%' 我想从表_1中查询,其中列_1的第三个字符是“0” LINQ中是否有等效语句 :D谢谢你试试这个(我现在无法测试): like是通过以下方法生成的:StartsWith、EndsWith和Contains。尝试使用它们。在您的情况下(假设列_1是字符串): 当然,您可以使用整个.NET
SELECT * FROM table_1 WHERE column_1 LIKE '__0%'
我想从表_1中查询,其中列_1的第三个字符是“0”
LINQ中是否有等效语句
:D谢谢你试试这个(我现在无法测试):
like是通过以下方法生成的:
StartsWith
、EndsWith
和Contains
。尝试使用它们。在您的情况下(假设列_1是字符串):
当然,您可以使用整个.NET库,如果需要更通用的解决方案,可以使用一些复杂的模式匹配API(如正则表达式):
var regex = new Regex("..0.*");
var qry = from t in table_1
where regex.Match(t.column_1).Success
select t;
你可以使用这个类。它是System.Data.Linq(又称Linq到SQL)的一部分
@Marcelo:可能是因为当与
like
一起使用时,下划线没有特殊意义,但与StartsWith
一起使用时,下划线没有特殊意义。这难道不检查条目是否以“\uuu 0”开头,而不是第三个字符是否为“0”?\uu
表示like
语句中的任何字符,然而,StartsWith
.D'oh没有特殊意义!那些下划线每次都让我着迷!正则表达式对L2SQL不起作用,我相信OP正在使用它(尽管它不是100%清楚),哦,我不知道。但是常规的字符串匹配技术是有效的,对吗?他只需要第三个字符为零,所以我想他也应该看看子字符串
。别忘了标记你最喜欢的答案。如果Steven的评论不是obvoius,这对LINQ to Entity不起作用。您将需要使用Andrey的方法。虽然SqlMethods.Like
允许直接转换为类似SQL的语句,但在可能的情况下,更喜欢使用string
方法(例如StartsWith和Contains),因为这会导致代码更易于维护。
from t in table_1
where !String.IsNullOrEmpty(t.column_1) && t.column_1.Length >= 3 && t.column_1[2] == '0'
select t;
var regex = new Regex("..0.*");
var qry = from t in table_1
where regex.Match(t.column_1).Success
select t;
from item in db.Table1
where SqlMethods.Like(item.Column1, "__0%")
select item;