Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL的LINQ版本';这是一个类似的说法_Sql_Linq - Fatal编程技术网

SQL的LINQ版本';这是一个类似的说法

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

我是LINQ的新手,在网上搜索模仿SQL语句的LINQ示例并不能让我满意

我想要的是生成与此SQL相同的查询结果

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;