2009-10-14 49 views
0

我需要剝去使用LINQ我的記錄下面的字符到SQL查詢字符的建築方法對LINQ查詢剝去記錄

"\";:'.,[email protected]#$%^&*(_)~{}[]\\|<>? aeiouAEIOU"

我可以用我的LINQ查詢這裏

from p in customers 
select new {customer_name = String.Concat(p.First_name.Replace("A","@"),p.Last_name.Replace("A","@")), address = p.Address.Replace("A","@") } 

但我知道必須有更好的方式來做到這一點!我在c#中嘗試了一種方法去除字符,但由於這是linq到sql它不起作用。錯誤說「那沒有支持的翻譯到SQL」

我需要一些想法和代碼示例如何在c#中編寫此例程。或者可能寫一個sql函數來做到這一點,以及如何做到這一點的例子。

回答

1

但是,如果您選擇更新記錄,則可以使用Regex.Replace()方法替換字符串中不需要的字符。

例如:

using System.Text.RegularExpressions; 

// ... 

string unwanted = @"["";:'.,[email protected]#$%^&*(_)~{}\[\]\\|<>? aeiouAEIOU]"; 

string subject = "The quick brown fox jumped over the lazy dog."; 

string result = Regex.Replace(subject, unwanted, string.Empty); 
// Thqckbrwnfxjmpdvrthlzydg 

Read more about Regular Expressions.NET implementation

+0

linq錯誤說「不支持轉換爲SQL」 - 任何其他想法? – kiev 2009-10-14 18:15:14

+1

獲取客戶對象,更新它們,然後將更新的值保存回數據庫,而不是嘗試將它們更新爲選擇的一部分? – 2009-10-14 21:18:22