Convertir une requête SQL en expression Linq par programme

expression-trees linq linq-to-sql

Question

Est-il possible de convertir en quelque sorte par programme une requête SQL en une arborescence d'expression linq? La requête SQL étant supposée être générée par cette requête linq, je la considère donc comme une sérialisation / désérialisation d’un pauvre homme au format t-sql.

Je vous remercie.

Réponse acceptée

Tout est possible, il faut juste un camion de travail. Le problème est que vous devez d'abord analyser la requête SQL et interpréter l'AST pour la convertir en un arbre d'expression linq. Ce n'est pas anodin, car Linq n'est pas compatible 1: 1 avec sql: par exemple, dans linq, les agrégats d'un groupe sont externes au groupe, tandis qu'en SQL ils sont internes: ils doivent appartenir à la même portée. comme le groupe, sinon ils ne fonctionneront pas. Ce type d’information est nécessaire pour convertir les requêtes linq en requêtes SQL mais aussi l’inverse.

Donc, pour stocker les requêtes, j'avais choisi un itinéraire différent, par exemple un modèle de spécification


Réponse populaire

Je ne crois pas qu'il y ait quoi que ce soit construit dans LINQ-to-SQL.

En théorie, j'oserais dire que ce serait possible (bien que cela ne garantisse pas les allers-retours, car il existe différentes manières d'exprimer la même requête), mais il est très difficile de bien faire.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi