我读过表达式树用于构建动态查询。我的困惑是,同样的事情也可以通过简单的字符串来实现。例如,假设这是一个从表中获取产品的示例查询:
string productName = Console.Read();
var result = from products in context.Products
where product.Name.Equals(productName)
select product;
相反,即使我们使用普通的 ADO.Net SQL 提供程序,我们也可以构建动态查询,如下所示:
string productName = Console.Read();
string query= "Select * from tableName where productname=" + productName;
那么使用表达式树有什么好处呢?同样,在使用表达式树编写动态代码时,我们不能简单地将整个代码存储为字符串并编写自定义解析逻辑以在运行时对其进行评估吗?
事实上,这个问题不是特定于表达式树,而是一般的树。