Как я могу сделать что-то подобное:
customers.where(c=>c.Name **like** "john");
Я знаю, что это невозможно, но мне было интересно, как у меня может быть что-то подобное.
using System.Data.Linq.SqlClient;
...
customers.where(c=>SqlMethods.Like(c.Name, "john"));
Если вы ориентируетесь на LINQ to SQL, используйте SqlMethods.Like:
customers.Where(c => SqlMethods.Like(c.Name, "%john%"));
Объяснение:
Компилятор сгенерирует дерево выражений из приведенного выше оператора. Поскольку LIKE
является специфичной для SQL конструкцией и не является общей для всех поставщиков запросов LINQ, класс SqlMethods
и его члены используются в качестве «подсказки» для компилятора выражений (компилирует деревья выражений для SQL) для создания инструкции LIKE
.