Как в Lambda Expression и LINQ

Как я могу сделать что-то подобное:

customers.where(c=>c.Name **like** "john");

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

39
задан Foggzie 5 April 2019 в 21:18
поделиться

3 ответа

customers.Where(c => c.Name.Contains("john"));
71
ответ дан 27 November 2019 в 02:08
поделиться
using System.Data.Linq.SqlClient;
...
customers.where(c=>SqlMethods.Like(c.Name, "john"));
5
ответ дан 27 November 2019 в 02:08
поделиться

Если вы ориентируетесь на LINQ to SQL, используйте SqlMethods.Like:

customers.Where(c => SqlMethods.Like(c.Name, "%john%")); 

Объяснение:

Компилятор сгенерирует дерево выражений из приведенного выше оператора. Поскольку LIKE является специфичной для SQL конструкцией и не является общей для всех поставщиков запросов LINQ, класс SqlMethods и его члены используются в качестве «подсказки» для компилятора выражений (компилирует деревья выражений для SQL) для создания инструкции LIKE.

30
ответ дан 27 November 2019 в 02:08
поделиться
Другие вопросы по тегам:

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