Je voulais faire une table de style de pagination, mais l'exemple NeerDinner récupère toutes les données dans un type PaggingList
, et j'ai plus de 10 000 lignes à extraire, donc j'ai sauté cette partie.Comment faire un simple compte dans Linq?
Je viens donc avec cette requête
var r = (from p in db.Prizes
join c in db.Calendars on p.calendar_id equals c.calendar_id
join ch in db.Challenges on c.calendar_id equals ch.calendar_id
join ca in db.ChallengeAnswers on ch.challenge_id equals ca.challenge_id
join cr in db.ChallengeResponses on ca.challenge_answer_id equals cr.challenge_answer_id
where
p.prize_id.Equals(prizeId)
&& ch.day >= p.from_day && ch.day <= p.to_day
&& ca.correct.Equals(true)
&& ch.day.Equals(day)
orderby cr.Subscribers.name
select new PossibleWinner()
{
Name = cr.Subscribers.name,
Email = cr.Subscribers.email,
SubscriberId = cr.subscriber_id,
ChallengeDay = ch.day,
Question = ch.question,
Answer = ca.answer
})
.Skip(size * page)
.Take(size);
Le problème est, comment puis-je obtenir le nombre total de résultats avant la partie Take
?
Je pensais:
var t = (from p in db.JK_Prizes
join c in db.JK_Calendars on p.calendar_id equals c.calendar_id
join ch in db.JK_Challenges on c.calendar_id equals ch.calendar_id
join ca in db.JK_ChallengeAnswers on ch.challenge_id equals ca.challenge_id
join cr in db.JK_ChallengeResponses on ca.challenge_answer_id equals cr.challenge_answer_id
where
p.prize_id.Equals(prizeId)
&& ch.day >= p.from_day && ch.day <= p.to_day
&& ca.correct.Equals(true)
&& ch.day.Equals(day)
select cr.subscriber_id)
.Count();
mais qui fera la requête une fois de plus ...
quelqu'un a des suggestions sur comment puis-je faire efficacement?
double possible de [LINQ: Paging tecnique, en utilisant prendre et sauter, mais besoin total des dossiers aussi - comment mettre en œuvre cette ?] (http://stackoverflow.com/questions/4275935/linq-paging-tecnique-using-take-and-skip-but-need-total-records-also-how-to-i) – Singleton
@Hansmukh I ' Je ne demande pas comment faire pagination ... Je demande comment 'Count' :) – balexandre
Qu'en est-il de la réponse sur cette page? Linq Paging - Comment incorporer le nombre total d'enregistrements http://stackoverflow.com/questions/2553167/linq-paging-how-to-incorporate-total-record-count – Chris