Dapper DONDE EN la declaración de cadena con Postgres

c# dapper postgresql where-in

Pregunta

He visto la declaración Dapper DONDE EN con ODBC

Pero no estoy seguro de que Dapper admita la sintaxis WHERE IN ("String1", "String2") para Postgres. ¿Esto es compatible? Traté de buscar el código, pero realmente no tengo tiempo en este momento. Hasta ahora solo he visto ejemplos de enteros.

Ejemplo:

_connection.QueryAsync<Lookup>("select * from lookup where lower(discriminator) in @types", new { types = new[] {"Prefix", "Suffix"} });

Resultados en: PostgresException {"42601: error de sintaxis en o cerca de \" $ 1 \ ""}

Declaración:

{select * from lookup where lower(discriminator) in $1}

Respuesta aceptada

Si no estoy equivocado, el operador IN en Postgres no admitirá arrays como parámetros. En lugar de IN tratar ANY operador, como a continuación:

var query = "SELECT * FROM lookup WHERE LOWER(discriminator) = ANY(@types)";

_connection.QueryAsync<Lookup>(query, new { types = new[] {"Prefix", "Suffix"} });


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é