La conversion de l'Expression<T, bool> String
J'ai besoin d'un moyen de recréer dynamiquement généré des rapports à un certain moment dans l'avenir. Longue histoire courte, j'ai besoin de stocker un spécifique requête linq (différent pour chaque rapport) dans la base de données et ensuite exécuter la requête avec la dynamique Linq plus tard.
C'est tout bon, mais je ne peux pas trouver un moyen de convertir l'expression de chaîne de caractères.
Comme dans:
Expression<Func<Product, bool>> exp = (x) => (x.Id > 5 && x.Warranty != false);
devrait devenir:
"Product.Id > 5 && Product.Warranty != false"
Est-il un moyen de le faire?
- Je pense que vous vous demandez
Expression<Func<Product,bool>>
, j'ai modifié votre question. - C'est à peu près la même question comme ceci: stackoverflow.com/questions/217961/...
- Oui, c'est correct, j'ai quitté la touche func partie.
- Peut-être cela va aider: code.msdn.microsoft.com/exprserialization
- Quel est le problème avec
ToString()
? - ToString() apparemment les retours des métadonnées à partir d'une réflexion, pas la chaîne réelle représentation de l'expression lambda.
- double possible de convert-an-expression-tree-to-source-code-string
Vous devez vous connecter pour publier un commentaire.
Cela peut ne pas être le meilleur/la plus efficace, mais il ne travail.