J'ai été confronté au même problème il y a quelque temps et j'ai alors trouvé LINQ to SP =).Make and SP and drop that into your entities and use it. Vous pouvez écrire Sp selon vos besoins comme tirer vos enregistrements et la colonne d'enregistrement total aussi. C'est plus facile et plus rapide que ce que vous utilisez en ce moment.
J'avais le même problème l'année dernière, puis, en ce qui concerne les performances, au lieu de faire deux requêtes, j'ai opté pour la méthode suivante LINQ to SP et j'ai créé une procédure stockée et je l'ai appelée via des entités telles que LINQ à la procédure stockée =). Et ma procédure stockée a tout fait et a retourné seulement les enregistrements que je voulais et j'ai fait la pagination à la fin de la procédure stockée de sorte que j'ai obtenu des données limitées à la fois plutôt que toutes les données à l'application.
Vous pouvez créer un SP et le déposer dans vos entités et l'utiliser. Vous pouvez écrire un Sp selon vos besoins, par exemple en tirant vos enregistrements et le total des enregistrements comme colonne. Considérez que vous avez 1000K d'enregistrements sur 100 tables. Les performances sont lentes ? vous pouvez le faire en Linq to SQL en faisant un Sp au niveau de la base de données et en appelant à travers les entités. Ce sera beaucoup plus rapide que ce que vous essayez de faire =)