public virtual PagedResult <Adjust> GetAdjusts(string expression, dynamic parameters, int pageIndex = 0, int pageSize = 2147483647, IEnumerable <Sort> sort = null) { var searchBuilder = new SqlBuilder(); var search = searchBuilder.AddTemplate(SqlTemplate.AdjustSearch(), new { skip = pageIndex * pageSize, take = pageSize }); if (!string.IsNullOrEmpty(expression)) { searchBuilder.Where(expression, parameters); } if (sort != null) { foreach (var s in sort) { searchBuilder.OrderBy(s.ToExpression()); } } else { searchBuilder.OrderBy("Adjust.AdjustDate DESC"); } var countBuilder = new SqlBuilder(); var count = countBuilder.AddTemplate(SqlTemplate.AdjustSearchCount()); if (!string.IsNullOrEmpty(expression)) { countBuilder.Where(expression, parameters); } using (var connection = _dapperContext.GetOpenConnection()) { var adjusts = connection.Query <Adjust, Site, Store, Adjust>(search.RawSql, (adjust, site, store) => { adjust.Site = site; adjust.Store = store; return(adjust); }, search.Parameters); var totalCount = connection.Query <int>(count.RawSql, search.Parameters).Single(); return(new PagedResult <Adjust>(adjusts, totalCount)); } }