Il pourrait être une question fréquemment posée, mais jusqu'à présent, je ne pouvais pas trouver une réponse convaincante.Quelle est la meilleure pratique de tri des données avec pagination, sur Business Tier ou Database Tier?
Dans mon projet, j'ai besoin de faire de la pagination pour un ensemble de plus de 20 000 enregistrements, qui est un résultat joint de plusieurs tables, et qui doit être trié différemment selon les scénarios.
Actuellement, il y a 2 options devant moi:
1, faites-le en utilisant la procédure de magasin sur la base de données de niveau ie. where dl.[row_number] between @index*@size+1 and @index*@[email protected]
. Le problème de le faire est, vous devrez écrire des processus de magasin pour chaque tri séparément. , Faites-le sur le niveau Business Logic, et faites paginer et trier au-dessus du résultat. (ie. skip(), take())
Mais ce n'est pas idéal non plus, puisque vous pourriez finir par récupérer 20 000 enregistrements, mais seulement 10 d'entre eux sont utilisés
Y a-t-il une meilleure pratique standard disponible pour cela? merci d'avance
Vous n'avez pas besoin de faire une procédure stockée distincte pour chaque clause "where" car vous pouvez faire des choses comme des instructions case et or. – jcolebrand