我有一个这样的LINQ语句:
var query = from s in persons
where (string.IsNullOrEmpty(name) || s.Name.trim().contains(name)) &&
(string.IsNullOrEmpty(email) || s.Email.contains(email)) &&
(string.IsNullOrEmpty(zip) || s.Zip == zip)
select s;
name字段来自可以在网页上键入名称的用户,然后我需要在persons表中搜索该特定名称。不幸的是,名字First Name和Last Name在数据库中的同一列中,另一个问题是在First Name和Last Name之间有两个空格,例如。如果他的名字是史蒂夫·拉姆齐数据库中的名称是这样的:
Steve Ramsey
并不是所有的名字都是这样存储的,只有很少的名字是这样的。我使用Regex来消除一个额外的空间:
Regex regex = new Regex("[ ]{2,}", options);
CustName = regex.Replace(CustName, " ");
我不知道如何把这个正则表达式在LINQ查询
1条答案
按热度按时间ioekq8ef1#
在LINQ-to-SQL中直接使用
Regex.Replace
是不可能的。我有两个选择,我认为第一个是最好的。使用SqlMethods.Like
方法来做你想做的事情。我的解决方案:
这应该能解决你的问题。别忘了导入这个类: