EDIT: Основываясь на моих комментариях с Lette, я сначала пропустил шаблон, соответствующий SqlMethods.Like.
Ваш запрос выглядит как VB, так что вы можете реально использовать Like operator напрямую, но вам нужно заменить %
звездочкой *
:
Where e.POSITION Like "*A[FGL]7*" _
Если вы используете C# вы должны будете либо используйте Lette's suggestion после звонка AsEnumerable()
, чтобы получить данные в памяти (возможно, сначала фильтровать по любым другим критериям , затем вызывать регулярное выражение для дальнейшей фильтрации) или следовать Ruben's suggestion.
Методы, упомянутые ниже, не действуют на 100%, как метод SqlMethods.Like, поскольку шаблон по существу экранирован. Другими словами, это относится только к буквальному тексту.
Просто используйте метод регулярных String.Contains на нем:
Where e.POSITION.Contains("A[FGL]7")
LINQ к SQL будет переводить методы .NET таким образом:
- текст. StartsWith (...) =
LIKE ...%
- текст. Содержит (...) =
LIKE %...%
- текст. EndsWith (...) =
LIKE %...
Вопрос Linq-To-Sql? Если это так, вы, вероятно, правы. У меня создается впечатление, что OP хочет «чистого» решения Linq. –
@Lette Я считаю, так как OP использует класс SqlMethods, который поддерживается только в LINQ to SQL (http://msdn.microsoft.com/en-us/library/bb355235.aspx). –
Я знал это, но вопрос не помечен как «linq-to-sql» ... –