Ir al contenido principal

SqlResult & SqlQueryResult

Referencia

SqlResult

Devuelto por los métodos de extensión ToSql(). Contiene solo un fragmento WHERE (sin SELECT / FROM).

Propiedad / MétodoTipoDescripción
SqlstringFragmento SQL parametrizado para WHERE (sin la palabra clave WHERE)
ParametersIReadOnlyDictionary<string, object>Parámetros nominales listos para Dapper o ADO.NET
ApplyTo(IDbCommand)voidAgrega todos los parámetros a un comando ADO.NET
ToString()stringRetorna Sql

Ejemplo con ApplyTo

var sql = filter.ToSql(new SqliteDialect());
cmd.CommandText = $"SELECT * FROM Products WHERE {sql.Sql}";
sql.ApplyTo(cmd);
var reader = cmd.ExecuteReader();

SqlQueryResult

Devuelto por Build() en todos los constructores, y por ToSqlCount(). Contiene una sentencia SQL completa.

Propiedad / MétodoTipoDescripción
SqlstringConsulta SQL parametrizada completa
ParametersIReadOnlyDictionary<string, object>Parámetros nominales
ApplyTo(IDbCommand)voidAgrega todos los parámetros a un comando ADO.NET
ToDebugSql()stringRetorna el SQL con los valores de parámetros incrustados — solo para logging, nunca ejecutar
ToString()stringRetorna Sql

Ejemplo con ToDebugSql

var result = new SqlQueryBuilder<User>(new SqlServerDialect())
.From("Users")
.Where(x => x.Age > 18)
.Build();

Console.WriteLine(result.ToDebugSql());
// SELECT * FROM [Users] WHERE [Age] > 18

Advertencia: ToDebugSql() incrusta los valores reales en el string SQL para legibilidad. Nunca pases este string a una base de datos — es únicamente para logging y depuración.