2010-11-30 2 views
3

Puis-je faire cela avec Linq to SQL?COUNT (1) OVER() avec Linq to Sql

select top 10 count(1) over(), * from product 

Aujourd'hui, je fais 2 sélections, un pour compter et un autre pour sélectionner la page:

  • select count(1) from product
  • select top 10 * from product

La sélection avec count(1) over() est beaucoup mieux depuis que le rendement total comptez ensemble la page. Je le profil des requêtes et de mettre count(1) over() les dont ajouter une milliseconde à l'original

Répondre

2

Que diriez-vous quelque chose comme ceci:

ctx.Products.Take(10).Select(p => new {Total = ctx.Products.Count, Product = p}) 
+0

Vous pourriez avoir besoin d'une 'prendre (10)' là quelque part pour obtenir les mêmes résultats que celui de l'OP SQL –

+0

Oui, j'ai oublié le Take - vous avez raison - Ill modifier la réponse –

+0

J'ai essayé, mais il fait un compte, puis un Select –