Home > Net >  .NET target framework 7 Web API doesn't respond from Postgresql function using Dapper
.NET target framework 7 Web API doesn't respond from Postgresql function using Dapper

Time:12-24

I am creating a .NET target framework 7 Web API and I am trying to get data from a Postgresql function using Dapper, but I only get this error :

42601: syntax error at or near "getallvendormasternew"
POSITION: 1

getallvendormasternew is a Postgresql function and I have defined this function variable name in the StoredProcedure class like this:

public class StoredProcedure
{
    public static string GetVendorList = "getallvendormasternew";
}

I have called this function as shown here, using DynamicParameter:

var queryParameters = new DynamicParameters();
queryParameters.Add("_pagenumber", 1);
queryParameters.Add("_pagesize", 10);
queryParameters.Add("_order_by_spec", Convert.ToString("vendorid_DESC"));

return await QueryAsync<VendorModel>(StoredProcedure.GetVendorList, queryParameters);

QueryAsync is implemented in the Repository class like this:

public async Task<IReadOnlyList<T>> QueryAsync<T>(string sql, object param = null, CommandType commandType = CommandType.StoredProcedure)
{
    return (await _db.QueryAsync<T>(sql, param)).ToList();
}

Please guide me how to solve this error.

Thanks.

I am trying to get data from postgresql function using above also I have try with add CommandType as stored procedure in QueryAsync but when I try this, I get an error that this is not a stored procedure because I created it as a function in PostgreSql.

Also I have tried calling it like public.getallvendormasternew in the StoredProcedure class, but I still get the same error.

I want to know how I can sort out this error and what the issue really is.

Thanks.

CodePudding user response:

If I use CommandType commandType = CommandType.Text and pass dynamic parameter in query and create a model of only that fields which is a return from function then I get a data.

CodePudding user response:

Have you tried calling a function?

return await QueryAsync<VendorModel>(
    "SELECT getallvendormasternew(_pagenumber, _pagesize, _order_by_spec)"
    ,queryParameters
    ,CommandType.Text);
  • Related