У меня есть следующая сохраненная функция
CREATE OR REPLACE FUNCTION public.servers_GetTop()
RETURNS SETOF servers AS
$$
BEGIN
return query
SELECT *
FROM servers
ORDER BY GroupId DESC
LIMIT 5;
END;
$$
LANGUAGE 'plpgsql';
И следующий C # с использованием dapper
public async Task<IEnumerable<Models.ServerInfo>> GetTopServers()
{
using (var db = _connectionFactory.GetConnection())
{
var cmd = new CommandDefinition("servers_GetTop", CommandType.StoredProcedure);
return await db.QueryAsync<Models.ServerInfo>(cmd);
}
}
Что приводит к ошибке:
Произошла одна или несколько ошибок. (42601: синтаксическая ошибка в или около "servers_GetTop")
Я использую Npgsql 4. Может кто-нибудь помочь мне понять, где находится синтаксическая ошибка и почему это происходит?
Если я запускаю хранимую функцию в оболочке SQL, она работает нормально. Кроме того, если я изменю код с использования сохраненной функции на запрос, проблем не возникнет:
var cmd = new CommandDefinition("SELECT * FROM servers");