我正在尝试动态构建一个原始SQL查询,其中将有X个条件。 我正在使用此页面上的信息工作:https://learn.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注入?