Frage:
So erstellen Sie effizient eine SQL-Abfrage mit einer IN-Klausel Verwendung von Dapper ORM, wenn die Werteliste für die IN-Klausel dynamisch aus dem Geschäft abgeleitet wird Logik?
Antwort:
Dapper ORM bietet direkte Unterstützung für dieses Szenario. So geht's:
string sql = "SELECT * FROM SomeTable WHERE id IN @ids"; var results = conn.Query(sql, new { ids = new[] { 1, 2, 3, 4, 5 }});
In diesem Beispiel ist der Parameter ids als Array von Ganzzahlen definiert. Die durch Kommas getrennte Liste der IDs in der ursprünglichen Abfrage wird basierend auf der Geschäftslogik dynamisch erstellt und als Wert für den ID-Parameter übergeben.
Wenn Sie Postgres als Datenbank verwenden, ist eine geringfügige Änderung erforderlich, um ordnungsgemäß zu funktionieren Behandeln Sie Arrays innerhalb der IN-Klausel:
// 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});
Das obige ist der detaillierte Inhalt vonWie verwende ich die IN-Klausel von Dapper ORM mit dynamisch generierten Listen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!