IN 句の値のリストがビジネス ロジックから取得される場合、Dapper ORM を使用して IN 句を含むクエリを記述する最適な方法は何ですか? たとえば、次のようなクエリがあるとします。
SELECT *
FROM SomeTable
WHERE id IN (commaSeparatedListOfIDs)
はcommaSeparatedListOfIDs
ビジネス ロジックから渡され、任意のタイプの になりますIEnumerable(of Integer)
。この場合、クエリをどのように構築すればよいでしょうか。これまで行ってきたように、基本的には文字列の連結を行う必要がありますか。それとも、私が知らない高度なパラメーター マッピング手法があるのでしょうか。
ベストアンサー1
Dapper はこれを直接サポートします。たとえば...
string sql = "SELECT * FROM SomeTable WHERE id IN @ids"
var results = conn.Query(sql, new { ids = new[] { 1, 2, 3, 4, 5 }});
ただし、Postgresを使用している場合は、この答え