How do I add ROW_NUMBER to a LINQ query or Entity?

Posted by Whozumommy on Stack Overflow See other posts from Stack Overflow or by Whozumommy
Published on 2009-07-22T12:49:30Z Indexed on 2010/03/23 5:01 UTC
Read the original article Hit count: 346

Filed under:
|
|

I'm stumped by this easy data problem.

I'm using the Entity framework and have a database of products. My results page returns a paginated list of these products. Right now my results are ordered by the number of sales of each product, so my code looks like this:

return Products.OrderByDescending(u => u.Sales.Count());

This returns an IQueryable dataset of my entities, sorted by the number of sales.

I want my results page to show the rank of each product (in the dataset). My results should look like this:

Page #1
1. Bananas
2. Apples
3. Coffee

Page #2
4. Cookies
5. Ice Cream
6. Lettuce

I'm expecting that I just want to add a column in my results using the SQL ROW_NUMBER variable...but I don't know how to add this column to my results datatable.

My resulting page does contain a foreach loop, but since I'm using a paginated set I'm guessing using that number to fake a ranking number would NOT be the best approach.

So my question is, how do I add a ROW_NUMBER column to my query results in this case?

© Stack Overflow or respective owner

Related posts about ASP.NET

Related posts about LINQ