在Postgres中調用DB函數時,String
的類型更改爲text
,DateTime
更改爲timestamp
。有什麼方法可以確保不會發生?Dapper:字符串在調用postgres函數時作爲文本傳遞
設置: 一個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與時間戳類似的故事。
嘗試使用DynamicParameters.Add()的變體,但結果仍然相同。
嘗試隱式轉換:'選擇_public.foo(@vFrom ::字符改變,@vTo ::字符改變,@vDate ::日期)' –