¿Puede mejorar el nombre de la tabla?

c# dapper

Pregunta

Esperaba que dapper-dot-net pudiera reemplazar el nombre de la tabla en una consulta como esta:

connection.Query("SELECT * FROM @Table WHERE [Id] = @Id", new {Table = tb, Id = id});

Sin embargo, parece que no reemplaza el nombre de la tabla. ¿Es eso una limitación esperada?

Respuesta aceptada

Con la única excepción de "en" (donde dapper ofrece algo de vudú), dapper es una herramienta ADO.NET directa, no cambia la consulta. Entonces, la verdadera pregunta es: ¿se puede parametrizar un nombre de tabla en SQL? En cada base de datos que conozco: no, no puedes, entonces eso no es válido. Dapper no intenta resolver ese problema.

Tal vez considere string.Format, recordando:

  • para poner en una lista blanca los nombres de tablas legales para evitar la inyección de SQL
  • utilizar la notación completa [square brackets] alrededor del nombre de la tabla para permitir el rango completo de posibles nombres


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é