Conversion de l’expression en chaîne

J’ai besoin d’un moyen de recréer des rapports générés dynamicment à un moment donné dans le futur. En résumé, je dois stocker une requête linq spécifique (différente pour chaque rapport) dans la firebase database, puis exécuter la requête avec Linq dynamic ultérieurement.

Tout cela est bien, mais je ne trouve pas un moyen de convertir une expression en chaîne.

Un péché:

Expression<Func> exp = (x) => (x.Id > 5 && x.Warranty != false); 

devraient devenir:

 "Product.Id > 5 && Product.Warranty != false" 

Y-a-t-il un moyen de faire ça?

Ce n’est peut-être pas la méthode la plus efficace / la plus efficace, mais cela fonctionne.

 Expression> exp = (x) => (x.Id > 5 && x.Warranty != false); ssortingng expBody = ((LambdaExpression)exp).Body.ToSsortingng(); // Gives: ((x.Id > 5) AndAlso (x.Warranty != False)) var paramName = exp.Parameters[0].Name; var paramTypeName = exp.Parameters[0].Type.Name; // You could easily add "OrElse" and others... expBody = expBody.Replace(paramName + ".", paramTypeName + ".") .Replace("AndAlso", "&&"); Console.WriteLine(expBody); // Output: ((Product.Id > 5) && (Product.Warranty != False))