LinqToSql - Есть ли альтернатива цепочке .Replace () для удаления символов из столбца базы данных при сравнении? - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь сделать где, где значение базы данных начинается со строки пользовательского ввода, но мне нужно удалить пробелы и специальные символы с обеих сторон строки.

Любой из них:
O B
OB
O'B
Должно соответствовать любому из них:
O'Brian
O Brian
OBrian

Обычно я использовал бы регулярное выражение, чтобы убрать все не алфавитно-цифровые символы, но LinqtoSql, кажется, не в состоянии использовать регулярное выражение. Я нашел SqlMethods.Like для сопоставления с образцом, но не могу использовать его для удаления символов с обеих сторон, насколько я могу судить.

Единственный способ, которым я смог выяснить, как это сделать, этос чем-то вроде этого:
x.LastName.Replace("", String.Empty).Replace("'", String.Empty).Replace("[", String.Empty).Replace("]", String.Empty.StartsWith(lastname.Replace("", String.Empty).Replace("'", String.Empty).Replace("[", String.Empty).Replace("]", String.Empty) )

Что работает, но наличие .Replace для каждого отдельного не альфа-символа является очень длинным и трудным для чтения. Есть ли лучший способ?

...