Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
C# 实体框架:如何表达包含[0-9]的LIKE语句_C#_Asp.net_Entity Framework - Fatal编程技术网

C# 实体框架:如何表达包含[0-9]的LIKE语句

C# 实体框架:如何表达包含[0-9]的LIKE语句,c#,asp.net,entity-framework,C#,Asp.net,Entity Framework,我想构造一个LINQ查询,用于根据like条件选择行的EF上下文。 据我所知,您可以使用.Contains()获得此行为。但是,我想包含的LIKE包含一个数字范围: LIKE 'LN[0-9]%' 例如 我如何在一个简单的查询中复制这种行为 谢谢,目前您不能直接在LINQ中使用like。U可以使用StartsWith,包含的或EndsWith被翻译成LIKE。其他解决方案是使用“Where”覆盖“string”,如下所示: 其中(“类似于'LN[0-9]]”) 尝试使用类似的方式启动: var

我想构造一个LINQ查询,用于根据like条件选择行的EF上下文。 据我所知,您可以使用
.Contains()
获得此行为。但是,我想包含的LIKE包含一个数字范围:

LIKE 'LN[0-9]%'
例如

我如何在一个简单的查询中复制这种行为


谢谢,

目前您不能直接在LINQ中使用like。U可以使用
StartsWith
包含的
EndsWith
被翻译成LIKE。其他解决方案是使用“Where”覆盖“string”,如下所示: 其中(“类似于'LN[0-9]]”)


尝试使用类似的方式启动:

var query = Cities.Where(city => city.Code.StartsWith("LN[0-9]"));
这是一个正则表达式问题([0-9]是正则表达式术语)。我建议你试试这样:

Regex myRegex = new Regex("LN[0-9]");

var matches = Cities.Where(c => myRegex.IsMatch(c.Field));

这是一个粗略的示例,但应该让您开始。

LINQ to Entities将添加escape并将[0-9]作为stringIt的一部分。值得注意的是,它不直接支持这一点。见@Piotr的答案。另外,请注意,如果OP一直在使用,那么他可以使用
SqlMethods