sirve que para metodo convert booleano bool c# expression dynamic-linq

c# - que - Convertir Expresión<T, bool> en Cadena



public bool c# (1)

Este puede no ser el mejor / el método más eficiente, pero funciona.

Expression<Func<Product, bool>> exp = (x) => (x.Id > 5 && x.Warranty != false); string expBody = ((LambdaExpression)exp).Body.ToString(); // 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))

Necesito una forma de recrear informes generados dinámicamente en algún momento en el futuro. Para resumir, necesito almacenar una consulta específica de linq (diferente para cada informe) en la base de datos y luego ejecutar la consulta con Linq dinámico más adelante.

Todo esto está bien, pero no puedo encontrar una forma de convertir la expresión a cadena.

Como en:

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

debe convertirse:

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

¿Hay una manera de hacer eso?