I am trying to do a search from a client table using the framework entity. It works when launched locally, but when I uploaded it to the server, I received the following error:
You have an error in the SQL syntax; check the manual that matches your version of MySQL server for the correct syntax to use around '% mark%)' on line 23
This is the code I'm using:
string[] searchCriteria = search.Split(' ');
var clients = from c in context.client
where searchCriteria.Any(x => c.name.Contains(x)) ||
searchCriteria.Any(x => c.surname.Contains(x)) ||
searchCriteria.Any(x => c.email.Contains(x)) ||
searchCriteria.Any(x => c.mobile.Contains(x)) ||
searchCriteria.Any(x => c.code.Contains(x)) ||
searchCriteria.Any(x => c.company.Contains(x))
select c;
As requested, the SQL statement is as follows:
SELECT
`Extent1`.`id`,
`Extent1`.`email`,
`Extent1`.`password`,
`Extent1`.`name`,
`Extent1`.`surname`,
`Extent1`.`address1`,
`Extent1`.`address2`,
`Extent1`.`cityid`,
`Extent1`.`deliveryaddress1`,
`Extent1`.`deliveryaddress2`,
`Extent1`.`deliverycityid`,
`Extent1`.`phone`,
`Extent1`.`mobile`,
`Extent1`.`code`,
`Extent1`.`vat`,
`Extent1`.`company`
FROM `client` AS `Extent1`
WHERE (((((EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable1`
WHERE `Extent1`.`name` LIKE '%mark%')) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable2`
WHERE `Extent1`.`surname` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable3`
WHERE `Extent1`.`email` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable4`
WHERE `Extent1`.`mobile` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable5`
WHERE `Extent1`.`code` LIKE '%mark%'))) OR (EXISTS(SELECT
1 AS `C1`
FROM (SELECT
1 AS `X`) AS `SingleRowTable6`
WHERE `Extent1`.`company` LIKE '%mark%'))
I would also point out that when I run it directly in the database, it works fine.
source
share