我正在使用Dapper从存储过程中获取结果集,并将其返回给客户端作为JSON格式的对象列表:
public IHttpActionResult Test()
{
List<ProductPreview> gridLines;
var cs = ConfigurationManager.ConnectionStrings["eordConnection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(cs))
{
gridLines = conn.Query<ProductPreview>("dbo.myStoredProcedure", new { userID = 1 },
commandType: CommandType.StoredProcedure).ToList();
}
var totalCount = gridLines[0].MaxCount;//I need to know total count
....
return Ok(gridLines);
}
它起作用了。 类型为ProductPreview的对象的最后一个属性是TotalCount,因为存储过程将总计数作为每行的列返回。(第二个选项是存储过程返回两个记录集,但我不确定如何更改dapper以使用两个记录集)。拥有两个单独的查询不是选择。
在没有totalCount属性(因为它是开销)的情况下向客户端返回gridLines json对象的最佳方法是什么?并从存储过程中读取总计数到某个变量中? 将gridLines对象复制到另一个没有totalCount属性的对象中也将是不必要的开销。