2
複数の検索条件に対して動的なSqlクエリを作成しようとしています。私は一般的にビルダーの使い方を理解していますが、実際には@termが毎回違っている必要があるので、ループで何をすべきか分かりません。クエリだけでなく、匿名型も一致させる必要があります。Dapper.SqlBuilderとOrWhereを使用して動的SQLクエリを作成する方法
クエリ文字列にstring.Formatを使用できますが、匿名型でどのように一致させるかわかりません。現在の形で
public async Task<List<Thing>> Search(params string[] searchTerms)
{
var builder = new SqlBuilder();
var template = builder.AddTemplate("SELECT * /**select**/ from ThingTags /**where**/ ");
for (int i = 0; i < searchTerms.Length; i++)
{
builder.OrWhere("value LIKE @term", new { term = "%" + searchTerms[i] + "%" });
}
...
}
用語のために作成されるクエリ「ABC」「DEF」「GHIは、」まあ、ここ
CommandType: Text, CommandText: SELECT * from ThingTags WHERE (value LIKE @term OR value LIKE @term OR value LIKE @term)
Parameters:
Name: term, Value: %ghi%
ご質問ありがとうございます。ちょっとしたコメント。 string.Formatは非効率的です。 'term + i.ToString()'または 'string.Format(" term {0} "、i)'を使用して、 –