Maison >base de données >tutoriel mysql >Comment utiliser la clause IN de Dapper ORM avec des listes générées dynamiquement ?

Comment utiliser la clause IN de Dapper ORM avec des listes générées dynamiquement ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-04 21:25:41964parcourir

How to Use Dapper ORM's IN Clause with Dynamically Generated Lists?

Requête avec la clause IN et Dapper ORM

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn