title: Dapper QueryMultiple() method returns null from postgreSQL
body: <p>So I'm trying to execute <code>pl/pgSQL</code> functions from a web app using <code>Dapper micro-ORM</code>. I'm always getting null values irrespective of the values I'm passing as parameters in <code>QueryMultiple</code> method; although in database the function gives proper result.</p>
  
  <p><strong>DAL Method:</strong></p>
  
  <pre><code>public List&lt;JSONData&gt; ExecutePostgres(string spName, List&lt;QueryParam&gt; Params)
      {
          List&lt;JSONData&gt; students = new List&lt;JSONData&gt;();
  
          using (var dbInstance = new NpgsqlConnection(postgreConnectionString))
          {
              using (var reader = dbInstance.QueryMultiple(spName, new { std_id = Params[0].value }, commandType: CommandType.StoredProcedure))
              {
                  students = reader.Read&lt;JSONData&gt;().ToList();
              }
          }
  
          return students;
      }
  </code></pre>
  
  <p><strong>Implementation Method:</strong></p>
  
  <pre><code>public List&lt;string&gt; ExecuteProcedure(string spName, List&lt;QueryParam&gt; Params)
      {
          var list = objDLOperation.ExecutePostgres(spName, Params);
          var strList = new List&lt;string&gt;();
  
          list.ForEach(x =&gt; strList.Add(x.JSONResult));
  
          return strList;
  
      }
  </code></pre>
  
  <p>This <code>strList</code> is always a List of <code>null</code> values</p>
  
  <p><strong>Entity Class:</strong></p>
  
  <pre><code>    public class JSONData
      {
        public string JSONResult { get; set; }
      }
  </code></pre>
  
  <p><strong>pl/pgSQL Function:</strong></p>
  
  <pre><code>CREATE OR REPLACE FUNCTION public.usp_getstudent(std_id integer)
  RETURNS SETOF json 
  AS $function$
  
  BEGIN
  RETURN QUERY
  select row_to_json(result) from (select * from student where id = std_id) as result;
  END  
  
  $function$ LANGUAGE 'plpgsql';
  </code></pre>