私はそれがとてもDapper.net
var filter = new Filter
{
ThingID = 1,
Keywords = new[] { "op", "s" }
};
のように移入されたフィルタオブジェクトを持っています。そして、このようなクエリ構築することができるようにしようとしている:
をvar sb = new StringBuilder();
sb.AppendLine("select * from Stuff where 1=1");
if (filter.ThingID.HasValue)
{
sb.AppendLine(" and ThingID = @ThingID");
}
if (filter.Keywords != null)
{
for (int i = 0; i < filter.Keywords.Length; i++)
{
string keyword = filter.Keywords[i];
if (!string.IsNullOrWhiteSpace(keyword))
{
sb.AppendLine(" and (Model like '%' || @Keywords" + i + " || '%')");
}
}
}
var sql = sb.ToString();
var results = Query<Stuff>(sql, filter).ToList();
これは、ThingID小道具だけが入力されていればうまく動作しますが、Dapperがどのような方法でもキーワードとしてパラメータを入力していないことがわかります。これはDapperでも可能ですか?「@ Keywordsのキーワード」のコンテキストでのみ動作しますか?