Я пытаюсь динамически создать необработанный SQL-запрос, который будет иметь X число условий. Я работаю с информацией на этой странице: https://docs.microsoft.com/en-us/ef/core/querying/raw-sql
В настоящее время у меня есть что-то похожее на это:
String rawQuery = "SELECT * FROM ItemsTable WHERE ";
foreach (f in FilterList) {
rawQuery = rawQuery + String.Format(f.condition, f.userInput);
// f.condition is something like "Name LIKE {0}"
}
var filteredItems = context.ItemsTable
.FromSql(rawQuery)
.ToList();
Проблема в том, что мои параметры не подставляются при использовании .FromSql (), поэтому я уязвим для атак с использованием SQL-инъекций.
Есть ли способ использовать .FromSql () для этой задачи?
ИЛИ, Есть ли другой способ защиты от внедрения SQL?