Есть несколько способов сделать это.Если вы вызываете эту функцию напрямую, используя объект команды, функция ExecuteScalar возвращает номер строки, возвращенной командой.
rowCountValue = (int)command.ExecuteScalar();
Или вы можете сделать это в определении функции;
CREATE OR REPLACE FUNCTION some_function(_limit integer, _skip integer, _sortcolumn text, _sortasc boolean, OUT _row_count integer)
RETURNS SETOF some_table AS
$BODY$
DECLARE
_result RECORD;
BEGIN
EXECUTE 'SELECT * FROM some_table ORDER BY "'||_sortcolumn||'"' ||case when _sortasc then 'asc' else 'desc' end ||' limit $1 offset $2;' INTO _result using _limit, _skip;
GET DIAGNOSTICS _row_count = ROW_COUNT;
return result;
END;
$BODY$
LANGUAGE plpgsql STABLE SECURITY DEFINER
COST 100
ROWS 100;
Если вы строите запрос нормально, то этот должен работать очень хорошо.
Надеюсь, это поможет.