Dapper ORM で SELECT * FROM X WHERE id IN (...) を実行する 質問する

Dapper ORM で SELECT * FROM X WHERE id IN (...) を実行する 質問する

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を使用している場合は、この答え

おすすめ記事