Linq to Entities (EF 4.1): как выполнить SQL LIKE с подстановочным знаком посередине ('% term% term%')?

Я хочу найти это:

Post Cereal

и получить следующее:

Post Honey Nut Cereal

где подстановочные знаки будут пробелами.

Я знаю, что могу выполнить SPLIT и серию операторов AND и Contains () и преобразовать в выражение Linq для каждого термина как объекта спецификации, но разве нет способа соблюдать подстановочные знаки в термине, отправленном в SQL? Я посмотрел на функции SQL в Linq to SQL, но я не уверен, что это такое в Linq to Entities.

Я хотел бы сделать что-то вроде этого:

term = '%' + term.Replace(' ', '%') + '%';
db.table.where( p => System.Data.Objects.SqlClient.SqlFunctions
                     .SqlMethods.Like(p.fieldname, term) );

Есть предложения?

18
задан Zachary Scott 7 October 2011 в 15:17
поделиться