Dapper 어디서 Postgres로 문자열 문

c# dapper postgresql where-in

문제

Dapper WHERE IN 문을 ODBC로 보았습니다.

하지만 Dapper가 Postgres의 WHERE IN ( "String1", "String2") 구문을 지원하는지 잘 모르겠습니다. 지원됩니까? 코드를 파고 들었지만 지금은 그 순간이 없습니다. 지금까지 정수의 예를 보았습니다.

예:

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

결과는 다음과 같습니다 : PostgresException { "42601 : \"$ 1 \ "또는 그 근처에서 구문 오류가 발생했습니다."}

성명서:

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

수락 된 답변

Postgres의 IN 연산자가 틀리면 배열을 매개 변수로 지원하지 않습니다. 대신에 IN 시도 ANY 아래와 같은 연산자를 :

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

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


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.