tags:

views:

60

answers:

2

Hi,

Is it possible to return a single value and an enumerable collection using LINQ to SQL?

The problem is, I'm trying to do paging across a large recordset. I only want to return 10 rows at a time so I'm using .Skip(20).Take(10) approach.

However I need to know the total number of records so I can show an appropriate page x of y.

Trying to avoid two separate queries.

Thanks

+4  A: 

Don't be afraid of queries. Do both.

klausbyskov
I'm worried that the page count might change between the two queries. Things might look a bit odd.
Sir Psycho
@Sir Psycho: Then use a `TransactionScope`.
klausbyskov
+1  A: 

I came across this exact same issue and ended up with

var q = from i in tableName select i;

int total = q.Count();

foreach(var obj in q.Skip(20).Take(10))
{
    ...
}

It really wasn't a problem at all

Nick Allen - Tungle139
That is fine, but it executes two queries. Therefore my answer below.
klausbyskov