Maison >base de données >tutoriel mysql >Comment utiliser la clause IN de Dapper ORM avec des listes générées dynamiquement ?
Question :
Comment construire efficacement une requête SQL avec une clause IN en utilisant Dapper ORM lorsque la liste de valeurs de la clause IN est dérivée dynamiquement de l'entreprise logique ?
Réponse :
Dapper ORM fournit un support direct pour ce scénario. Voici comment procéder :
string sql = "SELECT * FROM SomeTable WHERE id IN @ids"; var results = conn.Query(sql, new { ids = new[] { 1, 2, 3, 4, 5 }});
Dans cet exemple, le paramètre ids est défini comme un tableau d'entiers. La liste des identifiants séparés par des virgules dans la requête d'origine est construite dynamiquement sur la base de la logique métier et transmise comme valeur du paramètre ids.
Si vous utilisez Postgres comme base de données, une légère modification est requise pour correctement gérer les tableaux dans la clause 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});
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!