Мне нужно запросить таблицы в старой базе данных с сервера веб-API (C#), который использует ODATA. У меня есть базовый драйвер ODBC для устаревшей базы данных, и мне нужно поддерживать базовую фильтрацию в это время (eq, startswith и substringof). Например:
queryOptions.Filter.RawValue:
((startswith(Name,'Bill')) and
(substringof('sunset',Address)) and
(substringof('7421',Phone)))
должны быть преобразованы в нечто вроде этого (я озабочен только с ИНЕКЕ здесь):
SELECT CustName, Address1, Address2, ...
FROM Customers
WHERE CustName like 'Bill%' AND
Address1 like '%sunset% AND
Phone like '%7421%'
Я понимаю, что синтаксический RawValue, вероятно, не очень хорошая идея.
У кого-нибудь есть что-то подобное уже написанное, которое я могу использовать в качестве отправной точки? Или советы по хорошему, надежному способу выполнения этого?
Смотрите мой ответ в этой теме. http://stackoverflow.com/a/36956462/3271357 – PvPlatten
Я также разместил альтернативу по адресу http://stackoverflow.com/questions/28372999/translate-odata-queries-to-sql/42547175#42547175 –