инфраструктура сущностей LIKE запрос

Я использую EF4.1 с MySql и не могу заставить работать запрос LIKE. Я хочу получить список продуктов, где имя похоже на приложение

.Where(p=>p.Name.Contains("app") возвращает только один продукт с именем Apple. Сгенерированный SQL содержит оператор LOCATE вместо LIKE '%app%'

Я попытался выполнить команду sql с помощью SqlQuery («выберите * из продукта, где имя похоже на «% @ p0%»», «приложение»), но безрезультатно. Он не перезапускает какие-либо продукты.

Не могли бы некоторые предложить, как я могу написать LIKE для MySql db. Спасибо


person joblot    schedule 27.03.2013    source источник
comment
мы с такой же проблемой   -  person Hállisson    schedule 09.05.2013
comment
У меня точно такая же проблема. Любые решения?   -  person vijayst    schedule 18.02.2015


Ответы (1)


Я не знаю EF (yo no hablo Microsoft), но могу поспорить, что подстановочные знаки в вашем литерале мешают замене параметра.

Если вы попробуете что-то вроде следующего, это поможет?

SqlQuery("select * from product where name like concat('%',@p0,'%')", "app")

Является ли "@p0" параметром? Я так предполагаю.

Также попробуйте:

SqlQuery("select * from product where name like '@p0'", "%app%")

Также:

SqlQuery("select * from product where name like @p0", "'%app%'")

Держу пари, что один из них сработает.

person Ray Kiddy    schedule 04.10.2013