Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linq Paging - How to incorporate total record count

I am trying to figure out the best way of getting the record count will incorporating paging. I need this value to figure out the total page count given a page size and a few other variables.
This is what i have so far which takes in the starting row and the page size using the skip and take statements.

promotionInfo = (from p in matches
orderby p.PROMOTION_NM descending
select p).Skip(startRow).Take(pageSize).ToList();

I know i could run another query, but figured there may be another way of achieving this count without having to run the query twice.

Thanks in advance, Billy

like image 526
Billy Logan Avatar asked Mar 31 '10 13:03

Billy Logan


1 Answers

I know i could run another query, but figured there may be another way of achieving this count without having to run the query twice.

No, you have to run the query.

You can do something like:

var source = from p in matches
             orderby p.PROMOTION_NM descending
             select p;
var count = source.Count();
var promotionInfo = source.Skip(startRow).Take(pageSize).ToList();

Be advised, however, that Skip(0) isn't free.

like image 52
Craig Stuntz Avatar answered Oct 05 '22 23:10

Craig Stuntz