В настоящее время я работаю над приложением .Net, имеющим бэкэнд PostgreSQL. Я использую NpgSQL для соединения двух. Когда я пытаюсь сделать простой поиск данных, NpgSQL возвращает следующую ошибку:
42601: синтаксическая ошибка в или около "get_all_reviews"
Вызываемая функция PostgreSQL:
create or replace function public.get_all_reviews()
returns TABLE(review_text text, review_sentiment integer) as $$
begin
return query select rec.review_text, rec.review_sentiment from reviews as rec;
end;
$$ language plpgsql;
ALTER FUNCTION public.get_all_reviews()
OWNER TO postgres;
C # / NpgSQL:
public List<Review> GetReviews()
{
var reviews = new List<Review>();
var postgresqlConnection = new NpgsqlConnection("Server=localhost;Port=5432;User Id=user;Password=password;Database=db;");
postgresqlConnection.Open();
var command = new NpgsqlCommand("get_all_reviews", postgresqlConnection);
try
{
var dataReader = command.ExecuteReader();
...do stuff
postgresqlConnection.Close();
}
catch(Exception ex)
{
throw ex;
}
return reviews;
}
Исключение происходит command.ExecuteReader()
. Однако если я выполню следующий запрос в pgAdmin4, я получу желаемые результаты от вышеупомянутой функции:
select get_all_reviews()