次のクエリ文字列があります
"SELECT VALUE entity FROM Entities AS entity WHERE entity.Client_id
= 0 && entity.Name LIKE @searchvalue ORDER BY @sorting SKIP @skip LIMIT @limit"
次のパラメータ置換で
query.Parameters.Add(new ObjectParameter("skip", start));
query.Parameters.Add(new ObjectParameter("limit", limit));
query.Parameters.Add(new ObjectParameter("searchvalue", searchValue + "%"));
query.Parameters.Add(new ObjectParameter("sorting", sortField + " " + sortDirection.ToUpper()));
しかし、私は常に例外になります:
キー式 'ORDER BY' には、即時入力スコープへの参照が少なくとも 1 つ必要です。ORDER BY句の近くの項目
query.Parameters.Add(...)
これにより、すべてが引用符で囲まれていると思いますか?私もこれを読みましquery.Parameters.Add(...)
たが、何も起こらない場合、どのような利益が必要ですか? OK、攻撃者は新しいクエリを開始しないかもしれませんが、現在のクエリを操作できると思いますか?