Как безопасно выполнить пользовательский SQL-запрос? - PullRequest
0 голосов
/ 26 октября 2019

Я хочу создать API для отдыха, который запрашивает базу данных с помощью SQL-запроса. Таким образом, неограниченные скобки, неограниченное количество операций от ограниченных операторов (больше, меньше, равно и не равно) и неограниченное количество полей. Так как именно можно написать в SQL-запрос?

Таким образом, запрос может быть

(field1<3 and field2<4)or ((field2=4 and (field3=1 or field1=3))and(field2=2 or field5!=2))

И я хочу преобразовать его в

dataset.Where(a=> (a.field1<3 &&a.field2<4)|| ((a.field2=4 &&(a.field3=1 or a.field1=3))&&(a.field2=2 || a.field5!=2)))

Проблема в том, чтозапрос будет определяться пользователем, возможно, злонамеренный. Как можно проанализировать этот запрос в Entity Framework.

Я видел этот вопрос , но я не могу получить доступ к приложению FE. Могу ли я как-то ограничить то, что один запрос не должен обновляться и использовать что-то вроде dapper вместо EF?

...