Я использую .Take() для получения фиксированного количества результатов.
Как лучше всего получить TotalCountBeforeTake
(т.е. как будто я не использовал .Take())?
Могу ли я получить TotalCountBeforeTake
, не выполняя запрос дважды?
var Results = (from results in db.FindWords(term)
orderby results.word
select results.word).Take(100);
//just to get the total record count
int TotalCountBeforeTake = (from results in db.FindWords(term)
select results.word).Count();
// only showing 100 out of TotalCountBeforeTake results,
// but in order to know the TotalCountBeforeTake I had to run the query twice.
foreach (var result in Results)
{
Console.Write(result.ToString());
}
IEnumerable
. При поддержке базы данных выполнение нескольких запросов будет быстрее. Если бы это был Linq to Objects, то написание цикла while, вероятно, было бы быстрее. - person Billy ONeal   schedule 24.08.2013IEnumerable<T>
, убедитесь, что то, что вы получаете отdb.FindWords(term)
, являетсяIQueryable<T>
. - person ta.speot.is   schedule 24.08.2013