我是 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>
但没有运气。