質問:
IN 句を使用して SQL クエリを効率的に構築する方法IN 句の値のリストがビジネスから動的に派生する場合に Dapper ORM を使用するロジック?
回答:
Dapper ORM は、このシナリオを直接サポートします。その方法は次のとおりです。
string sql = "SELECT * FROM SomeTable WHERE id IN @ids"; var results = conn.Query(sql, new { ids = new[] { 1, 2, 3, 4, 5 }});
この例では、ids パラメーターは整数の配列として定義されています。元のクエリ内の ID のカンマ区切りリストは、ビジネス ロジックに基づいて動的に構築され、ids パラメータの値として渡されます。
データベースとして Postgres を使用している場合、適切に実行するには若干の変更が必要です。 IN 句内の配列を処理します:
// Define a custom type to represent an array of integers var postgresIntArray = new PostgresIntArray { Value = new[] { 1, 2, 3, 4, 5 } }; string sql = "SELECT * FROM SomeTable WHERE id IN @ids"; var results = conn.Query(sql, new { ids = postgresIntArray});
以上が動的に生成されたリストで Dapper ORM の IN 句を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。