如何使用linq to sql查询修剪更多的数据库空间?

时间:2013-12-23 04:25:31

标签: c# asp.net asp.net-mvc linq lambda

我正在使用像这样的“包含”linq属性来显示匹配的数据记录。

a=> a.user.displayname.contains(searchtext);

结果很好但有时a.user.displayname有超过2个空格然后结果没有来。如何修剪数据库数据a.user.displayname。请告诉我。

displayname:

venkatesh    duggirala,
mic   thomson

数据库数据中的更多空间。

谢谢, Venkat。

3 个答案:

答案 0 :(得分:1)

您可以在查询中使用替换

select string = replace(replace(replace(' select   single       spaces',' ','<>'),'><',''),'<>',' ')

它会将多个空格替换为查询中的单个空格

来源: - Replace duplicate spaces with a single space in T-SQL

同样你也可以使用你的linq Can I use LINQ to strip repeating spaces from a string?

或者你可以使用正则表达式

myString = Regex.Replace(myString, @"\s+", " ");

来源: - How do I replace multiple spaces with a single space in C#?

答案 1 :(得分:1)

a=> a.user.displayname.Replace(" ","").contains(searchtext);

答案 2 :(得分:0)

设置查询以尝试与其他空格进行比较是可能的。但是我没有提出这种方法,因为通过在Linq查询中添加复杂的字符串操作,它会强制C#端拉出完整的数据集,然后遍历结果,并运行可忽略额外空格的其他比较。

有超过一千条记录,这将成为内存和CPU密集型产品,并将在未来为您带来一些非常大的可扩展性问题。我建议您使用sql查询修复数据,并确保任何导入在移动数据时清除额外的空格。