NHibernate のクエリで照合を使用したいのですが、それを行う唯一の方法 (少なくとも私が見つけたものから) は、SQL 式を追加することです ( nHibernate でクエリ結果の照合をカスタマイズできますか? )
だから私は次のようなものを持っています
c.Add(Expression.Sql("Title COLLATE Divehi_90_BIN2 LIKE ?",
title,
NHibernateUtil.String))
ただし、これは正確な文字列と一致するため、両側で % を使用したいと考えています。
Title COLLATE Divehi_90_BIN2 LIKE %?%
私にエラーを与える、
しかし、タイトルにパディング:"%" + title + "%"
動作します。
私の質問は - 両側で % を使用するとセキュリティ上の欠陥のように見えるため、Expression.Sql でパラメーターを適切に指定する方法はありますか? - クエリ インジェクションを招いているということです。
PS。列に 2 つの言語のデータが含まれているため、データベース レベルで列の照合順序を変更できません。