typestar

Parámetros con Dapper en C#

SQL parametrizado a partir de objetos anónimos.

using Dapper;
using Microsoft.Data.Sqlite;

using var db = new SqliteConnection("Data Source=:memory:");
db.Execute("CREATE TABLE runs(lang TEXT, tpm INT)");
db.Execute("INSERT INTO runs VALUES ('csharp', 95), ('rust', 88)");

// los objetos anónimos llevan parámetros; Dapper maneja las comillas
var fast = db.Query<int>(
    "SELECT tpm FROM runs WHERE lang = @Lang AND tpm > @Floor",
    new { Lang = "csharp", Floor = 90 });

Console.WriteLine(string.Join(",", fast));
Console.WriteLine(db.ExecuteScalar<long>("SELECT COUNT(*) FROM runs"));

Cómo funciona

  1. @Lang y @Floor se vinculan desde los nombres de propiedad del objeto.
  2. Con parámetros, las comillas y la inyección son problema de Dapper.
  3. ExecuteScalar<long> trae un solo valor con su tipo.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
536
Tokens
84
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 59 segundos.

Escribe este fragmento

Paso 2 de 2 en Datos con Dapper; paso 5 de 16 en El ecosistema abierto.

← Anterior Siguiente →