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
@Langy@Floorse vinculan desde los nombres de propiedad del objeto.- Con parámetros, las comillas y la inyección son problema de Dapper.
ExecuteScalar<long>trae un solo valor con su tipo.
Palabras clave y builtins usados aquí
intlongnewstringusingvar
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.
Paso 2 de 2 en Datos con Dapper; paso 5 de 16 en El ecosistema abierto.