43 votes

Générer dynamiquement des requêtes LINQ

Nous avons un objet

Est-il possible de créer dynamiquement de nouvelles requêtes LINQ sans recompilation du code source ? Au lieu de cela, les paramètres de requête proviennent d’une structure XML stockée et mise à jour dans la base de données.

Est-ce possible ?

145voto

Balazs Tihanyi Points 2530

Voici une solution avec des arbres d’expression :

Je sais que c’est beaucoup plus complexe, mais cela peut être utile dans le temps.

32voto

Steve Wortham Points 11563

C’est difficile pour moi de le dire en fonction de votre question, mais dans certains cas, vous n’avez pas besoin de Linq dynamique et pouvez simplement le faire...

Cela empêchera essentiellement les données d’être filtrées lorsque le paramètre en question est null. Et il fonctionne toujours bien grâce au comportement de court-circuit en C #.

29voto

Joachim Isaksson Points 85969

Vous voudrez certainement jeter un coup d’œil à Dynamic Linq qui vous permettra de définir les conditions de requête sous forme de texte.

En ce qui concerne l’ajout dynamique de conditions, vous pouvez ajouter des conditions à une requête en utilisant une syntaxe similaire à ;

tout ce que vous pouvez (assez facilement) encoder dans un format XML de votre choix.

8voto

Antineutrino Points 1011

Peut-être que Dynamic Linq peut vous aider : Dynamic linq part 1: Using the linq dynamic query library

Ou vous pouvez manipuler directement votre requête Linq :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X