Bonjour,
Je vous beaucoup remercie de bien vouloir m'aider à comprendre le point suivant.
A propos de requêtes dynamiques, le cours Microsoft de programmation en C# explique:
En utilisant le langage LINQ, on peut requêter vers des données d'une l'application sans se soucier de l'implémentation de la base de données.
Ce pendant, avec les requêts Ling statiques, on doit fournir les détails de la requête que l'on a besoin d'exécuter, lorsqu'on compile l'application.
On peut aussi construire des requêtes dynamiquement.
Cette approche permet d'optimiser les requêtes en leur faisant prendre forme en fonction des besoins que l'utilisateur de l'application spécifie.
Je ne comprends pas bien ceci " avec les requêtes LINQ statiques, on doit fournir les détails de la requête que l'on a besoin d'exécuter lorsqu'on compile l'application."
Il est également expliqué ceci
"on peut utiliser, dans la plupart des situations des requêtes LINQ statiques, mais peuvent exister certaines situations, où certains critères de la requête tels que l'ordre de récupération des données, ou simplement lorsque les données à récupérer ne sont connues qu'à l'exécution.
Un exemple est donné :
"on peut avoir besoin de requêter vers une table de base de données qui stocke les resultats de tests d' étudiants .
Cette table contient les champs suivants :nom de l'etudiant, nom du test, le resultat(score) effectué .
On peut, sur la base de cet exemple, développer une application pour requêter vers la base de données et appliquer des filtres, en utilisant des requêtes LINQ statiques.
Mais supposons que nous souhaitions que l'application soit plus flexible, par exemple, si l' on souhaite récupérer le contenu des trois champs de la base de données et parfois seulement deux de ces champs.
Une des solutions sera de construire des requêtes Linq Statiques mais en utilisant des instructions de type if ou switch.
Utiliser une requête dynamique permet de résoudre ce problème:
Quand on développe une requête LINQ dynamque, on construit une représentation de la requête dans la forme d'une expression tree et on compile celle-ci à l'execution.
La requête répond alors exactement au besoin de l'utilisateur.
Ma question est la suivante : Comment une requête Linq dynamique permet de répondre à ce besoin de flexibilité?
Comment le fait de décomposer une requête LINQ statique en utilisant des classes telles que MemberInfo, Type, BinaryExpression, ConstantExpression permet cette flexibilité?
Ceci n'est pas très clair pour moi.
vous remerciant encore beaucoup de votre aide sur ce point,
Bien cordialement.
new_wave
Partager