在C#中获取FieldExpression值

问题描述 投票:0回答:0

我是 C# 表达式的新手,我正在尝试创建一个从

Expression<Func<T,bool>>
到 SQLWhere 子句的转换器。当提供的表达式看起来像这样时,我设法做到了

Expression<Func<Product, bool>> predicate = p => p.Price > 100 && p.Category == "Electronics" && p.PriceTotal >= 200;

在上面的示例中,我可以将表达式分解为成员表达式和常量表达式,并创建等效的 SQLWhere 子句。现在我正在尝试为此做同样的事情 -

public void GetWhereCluase(string categoryName)
{
    Expression<Func<T,bool>> predicate = p => p.Category == categoryName && p.PriceTotal >= 200;
    GetClause(predicate);
}

但这一次,右侧是一个FieldExpression,我不知道如何获得实际值。

我尝试编译

Func<T,bool>
但没有运气。

c# lambda expression
© www.soinside.com 2019 - 2024. All rights reserved.