LinqDataSource - Pouvez-vous limiter le nombre d'enregistrements renvoyés ?

J'aimerais utiliser un contrôle LinqDataSource sur une page et limiter le nombre d'enregistrements renvoyés. Je sais que si j'utilise du code derrière, je pourrais faire quelque chose comme ça :

IEnumerable<int> values = Enumerable.Range(0, 10);
IEnumerable<int> take3 = values.Take(3);

Est-ce que quelqu'un sait si quelque chose comme ça est possible avec un contrôle LinqDataSource ?

[Mise à jour]

Je vais utiliser le LinqDataSource avec le contrôle ListView, pas un GridView ou un Repeater. L'assistant LinqDataSource ne permet pas de limiter le nombre d'enregistrements renvoyés. Les options avancées vous permettent uniquement d'activer les suppressions, les insertions et les mises à jour.

请先 登录 后评论

2 réponses

lomaxx

Je sais que si vous utilisez un répéteur de pagination ou un gridview avec linqdatasource, cela optimisera automatiquement le nombre de résultats renvoyés, mais je suis également sûr que dans l'assistant de source de données, vous pouvez accéder aux options avancées et le limiter à

SELECT TOP 3 FROM 

qui devrait vous permettre de faire ce dont vous avez besoin

请先 登录 后评论
Daniel O

Vous pouvez baser votre requête Linq sur une procédure stockée qui ne renvoie que x nombre de lignes à l'aide d'une instruction TOP. N'oubliez pas que ce n'est pas parce que vous pouvez faire tout votre code DB dans Linq que vous devriez le faire. De plus, vous pouvez dire à Linq d'utiliser le même type de retour pour la procédure stockée que la table normale, de sorte que toute votre liaison fonctionnera toujours et que les résultats de retour seront du même type

请先 登录 后评论
  • 18 abonnés
  • 0 favoris,571 Feuilleter
  • Otto posée à 2023-03-17 15:11