C# 如何动态地将lambda表达式转换为Sql查询?

C# 如何动态地将lambda表达式转换为Sql查询?,c#,sql,lambda,C#,Sql,Lambda,我有一个表达式类型变量。它有一个表达式来过滤数据。 例如,表达式允许SQL获取位置为“KOR”的数据 {it=>it.LOCATION==KOR} 此表达式将是SQL语句中的WHERE子句。 将lambda表达式转换为Sql查询看起来很复杂,因为有许多不同的表达式 我怎样才能不从零开始就达到这个目的呢? 有好的图书馆吗 加上 我可以通过调用ToString方法获得lambda表达式的字符串 it=>it.LOCATION==\KOR\OrElse it.LOCATION==\FRA\AndAls

我有一个表达式类型变量。它有一个表达式来过滤数据。 例如,表达式允许SQL获取位置为“KOR”的数据

{it=>it.LOCATION==KOR} 此表达式将是SQL语句中的WHERE子句。 将lambda表达式转换为Sql查询看起来很复杂,因为有许多不同的表达式

我怎样才能不从零开始就达到这个目的呢? 有好的图书馆吗

加上

我可以通过调用ToString方法获得lambda表达式的字符串

it=>it.LOCATION==\KOR\OrElse it.LOCATION==\FRA\AndAlso it.Value>30000
我不完全确定您要求的是什么,但是您是否尝试过使用Linq to Sql

Sql查询的预期输出是什么?预期输出是“KOR”中的位置,“FRA”和“值>30000”。如果你在寻找一个通用的解决方案,你可能会考虑建立一个SQL子句树的复杂性,从而返回嵌套谓词理论。NHibernate或实体框架可以以不同的方式帮助您。我不支持所有表达式,而是限制词汇表,所以实现它不会太困难。谢谢你的意见,都是关于嵌套子句的。翻译一个不难的地方,但是你将如何处理SELECT..FROM SELECT..FROM..WHERE internal JOIN SELECT..FROM…AND…OR?谓词具有不同的优先级和不同的求解顺序。让我们知道: