Dapper Parameter replace no funciona para Top

c# dapper sql-server

Pregunta

Este es mi sql

var maxLimit =100;
var sql = "Select Top @MaxLimit from Table WHere data =@Id"
conn.Query<Result>(sql, new  {
                Id = customerId,
                MaxLimit = maxLimit
            })

Pero obtengo un error del sistema

sintaxis incorrecta cerca de @MaxLimit.

¿Dapper no puede parametrizar campos como Top o Fetch?

Respuesta aceptada

En SQL Server, cualquier expresión top que no sea una constante numérica debe estar entre paréntesis.

SELECT TOP (@MaxLimit) FROM ...

Respuesta popular

Esto también funciona con las versiones más nuevas de Dapper:

var sql = "Select Top {=MaxLimit} from Table WHere data =@Id";


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué