Saltar al contenido

Controlar null para el parámetro de lista en Dapper

Al fin luego de tanto trabajar ya dimos con la solución de esta duda que agunos lectores de este sitio web presentan. Si deseas aportar algún detalle no dudes en dejar tu información.

Solución:

los id in @ids es un patrón que es reconocido por dapper y tratado como un expansión – entonces, dependiendo de la cantidad de elementos en su entrada idsesto podría convertirse en uno de:

(1 = 0) -- empty sequence
(id = @ids_0) -- sequence with 1 element
(id in (@ids_0, @ids_1, ...)) -- sequence with multiple elements

Debido a esto, después de la expansión, no es no @ids parámetro / variable – entonces @ids IS NULL no va a trabajar Como tal, propongo la mejor manera de hacer esto. en tu caso es simplemente: no agregue esa parte del archivo tsql. Por ejemplo:

var sql = new StringBuilder("select * from Table1");
if(ids != null && ids.Any())

    sql.Append(" where id in @ids");

var data = conn.Query(sb.ToString(), new  ids ).ToList();

where Id in @ids or [email protected]

y entonces

var data = conn.Query(sb.ToString(), new  ids, listCount=ids.Count ).ToList();

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *