我想用C#解析SQL代码.
具体来说,有没有免费提供的解析器可以解析SQL代码,并从中生成树或任何其他 struct ?它还应该为嵌套 struct 生成适当的树.
它还应该返回该树的 node 代表的语句类型.
例如,如果 node 包含循环条件,那么它应该返回 node 的"循环类型".
或者有什么方法可以解析C#中的代码并生成我想要的类型的树?
我想用C#解析SQL代码.
具体来说,有没有免费提供的解析器可以解析SQL代码,并从中生成树或任何其他 struct ?它还应该为嵌套 struct 生成适当的树.
它还应该返回该树的 node 代表的语句类型.
例如,如果 node 包含循环条件,那么它应该返回 node 的"循环类型".
或者有什么方法可以解析C#中的代码并生成我想要的类型的树?
[警告:自2021年起,答案可能不再适用]
使用微软Entity Framework(EF).
它有一个"实体SQL"解析器,可以构建一个表达式树,
using System.Data.EntityClient;
...
EntityConnection conn = new EntityConnection(myContext.Connection.ConnectionString);
conn.Open();
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"Select t.MyValue From MyEntities.MyTable As t";
var queryExpression = cmd.Expression;
....
conn.Close();
或者类似的,在MSDN上查看.
这一切都在鲍尔默的滴答声中:——
代码项目中还有一个是100.
祝你好运