我想构建一个LINQ查询,用于针对基于LIKE条件选择行的EF上下文。 据我所知,你可以使用.Contains()
得到这个行为。但是,就像我想包括含有数范围:实体框架:如何表达一个LIKE语句,其中包含[0-9]
LIKE 'LN[0-9]%'
例如...
我将如何去在一个简单的查询复制这种行为?
谢谢,
我想构建一个LINQ查询,用于针对基于LIKE条件选择行的EF上下文。 据我所知,你可以使用.Contains()
得到这个行为。但是,就像我想包括含有数范围:实体框架:如何表达一个LIKE语句,其中包含[0-9]
LIKE 'LN[0-9]%'
例如...
我将如何去在一个简单的查询复制这种行为?
谢谢,
目前,你不能直接在LINQ中使用。 U可以使用翻译成LIKE的StartsWith
,Contains
或EndsWith
。其他的解决方案是使用 '去哪儿' 像这样的 '串' 此改变: 凡( “有点像 'LN [0-9]%'”)
尝试StartsWith像这样:
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));
一个粗略的例子,但应该让你开始。
值得注意的是[tag:entity-framework]不直接支持这一点。请参阅@ Piotr的答案。另外,请注意OP已经使用[tag:linq-to-sql],那么他可以使用'SqlMethods'。 – 2011-06-13 13:37:43
LINQ to Entities将添加转义并将[0-9]作为字符串的一部分处理 – 2011-06-13 13:32:26