Версия LINQ оператора LIKE SQL

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

То, что я хочу, производит тот же результат запроса как этот SQL

SELECT * FROM table_1 WHERE column_1 LIKE '__0%'

Я хочу запросить от table_1, где третий символ column_1 '0'

Есть ли в LINQ эквивалентный оператор

:D спасибо

8
задан strike_noir 29 March 2010 в 09:55
поделиться

4 ответа

Вы можете использовать класс SqlMethods. Он является частью System.Data.Linq (он же LINQ to SQL).

from item in db.Table1
where SqlMethods.Like(item.Column1, "__0%")
select item;
9
ответ дан 5 December 2019 в 10:02
поделиться

Лайки создаются следующими методами: StartsWith , EndsWith и Contains . Попробуйте поиграть с ними.

8
ответ дан 5 December 2019 в 10:02
поделиться

В вашем конкретном случае (при условии, что столбец_1 является строкой):

from t in table_1
where !String.IsNullOrEmpty(t.column_1) && t.column_1.Length >= 3 && t.column_1[2] == '0'
select t;

Конечно, в вашем распоряжении вся библиотека .NET и вы можете использовать какой-нибудь сложный API сопоставления шаблонов (например, регулярные выражения), если вам нужно более общее решение:

var regex = new Regex("..0.*");
var qry = from t in table_1
          where regex.Match(t.column_1).Success
          select t;
0
ответ дан 5 December 2019 в 10:02
поделиться

Попробуйте это (я не могу проверить это прямо сейчас):

from t in table_1
where t.column_1[2] == '0'
select t;
0
ответ дан 5 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: