Dapper не может выполнить функцию PostgreSQL - PullRequest
0 голосов
/ 04 мая 2018

У меня есть функция в PostgreSQL, и я хочу выполнить ее через dapper, но она выдает ошибку о том, что функция не существует:

моя функция в postgres:

                    CREATE OR REPLACE FUNCTION wpv.production_availability_sum_avg(
                    IN dtfrom date,
                    IN dtto date,
                    IN supervisor text,
                    IN reginalmanager text,
                    IN serviceunder text)
                  RETURNS TABLE(production numeric, turbine_name text, wind_speed double precision, availability double precision, power_curve_quality double precision) AS
                $BODY$declare


                begin
                return query
                  select sum(m_energy_prod::numeric) Production,f.turbine_name::text, round(avg(m_wind_speed), 2) wind_speed, round(avg(m_corrected_av), 2) availability,
                                                    round(avg(t1.power_curve_quality), 2)  power_curve_quality
                                                    from wpv.v_statistics_daily v1
                                                    left outer join wh.t_statistics_daily_ext t1 on t1.m_turbine_id = v1.m_turbine_id  and t1.m_date=v1.m_date
                                                    JOIN wpv.v_master_data_turbine f on (f.m_turbine_id=v1.m_turbine_id) 
                                                    JOIN zd.t_users g on(g.user_id=f.pv_person_resp_id)
                                                    where  (v1.m_date between dtfrom and dtto)  
                                                    and 
                                                    f.m_turbine_supervisor like serviceunder
                                                   and  g.user_name Like(reginalmanager)        
                                                   and f.service_under Like(serviceunder) end)

                                                    group by 2
                                                    order by 4 ASC 
                                                    limit 20;

                    end;$BODY$
                  LANGUAGE plpgsql VOLATILE
                  COST 100
                  ROWS 1000;
                ALTER FUNCTION wpv.production_availability_sum_avg(date, date, text, text, text)
                  OWNER TO postgres;

вот мой код

                     var t = new {dtfrom=Convert.ToDateTime( "03/05/2018") ,dtto= Convert.ToDateTime( "04/05/2018"),supervisor="%",regionalmanager="%",serviceunder="%" };
                                DynamicParameters p = new DynamicParameters();
                                p.Add("@dtfrom", "03/05/2018",DbType.Date,ParameterDirection.Input);
                                p.Add("@dtto", "04/05/2018",DbType.Date, ParameterDirection.Input);
                                p.Add("@supervisor", "%",DbType.String, ParameterDirection.Input);
                                p.Add("@regionalmanager", "%",DbType.String, ParameterDirection.Input);
                                p.Add("@serviceunder", "%",DbType.String, ParameterDirection.Input);


                                var s = connection.Query<DataTable>("wpv.production_availability_sum_avg", p,

                        commandType: CommandType.StoredProcedure);

последняя часть, где я хочу выполнить запрос, я получаю сообщение об ошибке, функция не существует, но я верю, что она существует, и я проверил в postgres, и она работает

...