Да, это возможно. Создайте метод WCF, который принимает string
, который является запросом. Для возвращаемого типа вам, вероятно, придется проделать дополнительную работу, чтобы сделать его управляемым. Вероятно, вам нужна какая-то коллекция объектов DTO, для которой требуется либо очень гибкая конструкция объектов DTO, либо ограничения на разрешенный набор результатов запроса.
Существует обсуждение возврата наборов данных / таблиц данных из веб-службы в Можно ли сериализовать таблицу данных или набор данных для передачи через веб-службу в C #? ТАК вопрос.
Как указывает @ w0lf, могут возникнуть серьезные угрозы безопасности, которые вы должны принять во внимание. Что вы будете делать, так это предоставить любому, кто имеет доступ к вашей службе WCF, доступ к выполнению произвольных запросов на вашем SQL-сервере. Это можно сделать безопасно, если вы выполняете эти запросы под определенной учетной записью на сервере SQL с тщательно созданными разрешениями. Смотрите, например http://data.stackexchange.com, который разрешает выполнение запросов SQL - только для чтения.
Обычно я считаю плохой идеей представлять запросы в виде строк, но если вам действительно это нужно, это действительно возможно.