views:

267

answers:

1

Hello everyone, 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

+2  A: 

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.

Craig Stuntz
This is exactly how i wrote it knowing that this is two hits. By skip(0) isn't free you mean resource intense? Should just be removed if startRow is 0?
Billy Logan
Yews, just get rid of it then. Click the link for more info.
Craig Stuntz