Я пытаюсь использовать Npgsql и/или Dapper для запроса таблицы и продолжаю сталкиваться с Npgsql.PostgresException 42601: syntax error at or near "$1".
Вот что я пробовал с NpgsqlCommand:
using (var conn = new NpgsqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["postgres"].ConnectionString))
{
conn.Open();
using (NpgsqlCommand command = new NpgsqlCommand("select * from Logs.Logs where Log_Date > current_date - interval @days day;", conn))
{
command.Parameters.AddWithValue("@days", days);
var reader = command.ExecuteReader();
Я также пробовал это с Dapper (мой предпочтительный метод) с:
using (var conn = new NpgsqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["postgres"].ConnectionString))
{
conn.Open();
var logs = conn.Query<Log>("select * from Logs.Logs where Log_Date > current_date - interval @days day;", new {days = days});
В любом случае я получаю одно и то же Npgsql.PostgresException 42601: syntax error at or near "$1" error.
Заявление в исключении показывает: select * from Logs.Logs where Log_Date > current_date - interval $1 day
Обратите внимание: если я сделаю следующее, все будет работать нормально, но не будет правильно параметризовано:
var logs = conn.Query<Log>("select * from Logs.Logs where Log_Date > current_date - interval '" + days + "' day;");
Что я делаю не так? Я очень ценю любую обратную связь. Спасибо.