Dapper : postgres 함수를 호출 할 때 문자열이 Text로 전달됩니다.

dapper datetime mapping postgresql sql

문제

Postgres에서 DB 함수를 호출하면 String 유형이 text 변경되고 DateTimetimestamp 변경됩니다. 이것이 일어나지 않도록하는 방법이 있습니까?

설치 : DB 기능 :

foo(v_from character varying, v_to character varying, v_date date)

더퍼 코드 :

public static decimal GetValue(DateTime vdate, string cur) {
        string sql = @"SELECT _public.foo(@vFrom, @vTo, @vDate)";
        var data = connection.QueryFirstOrDefault<decimal>(
                                             sql,
                                             new
                                             {
                                                 vFrom = cur,
                                                 vTo = cur,
                                                 vDate = valdate,
                                             }
                                            );
}

다음과 같은 오류가 나타납니다.

Npgsql.PostgresException : 42883: Function _public.foo(text, text, timestamp without time zone) does not exist

어떻게 든 문자열은 문자 varchar 대신 텍스트로 변환됩니다. DateTime to timestamp와 비슷한 이야기.

DynamicParameters.Add ()를 사용하여 변형을 시도했지만 여전히 동일한 결과를 나타냅니다.

수락 된 답변

이 시도?

public static decimal GetValue(DateTime vdate, string cur) {
        string sql = @"SELECT _public.foo(@vFrom::character varying, @vTo::character varying, @vDate::date)";
        var data = connection.QueryFirstOrDefault<decimal>(
                                             sql,
                                             new
                                             {
                                                 vFrom = cur,
                                                 vTo = cur,
                                                 vDate = valdate,
                                             }
                                            );
}


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