我正在编写一个工具,需要从源获取数据。这个源是由用户指定的,可能是诸如SQL后端、专有数据库、平面文件系统等等。
我希望我的查询接口使用Linq,因为它似乎最符合C#语言的特性,并且可以利用大量的.NET代码。
我已经做了一些研究,开始通过这个很棒的教程here构建了一个IQueryProvider。这使我走了很长一段路,但现在我对于让用户将表达式树转换为他们自定义代码的最佳方式感到困惑。
我正在努力找出为用户提供一个简单界面的最佳方式来指定如何将表达式树转换为自定义“代码”(例如,“SQL”),但看起来相当麻烦和复杂 - 我想这正是因为确实如此。
我的问题是,将表达式树转换为自定义语言的最佳方法是什么?
据我所知,我要使用“Context”类来执行自定义解析逻辑,但我使用的API似乎非常低级 - 是否有更高级别的操作来简单地将操作映射到字符串?
我希望我的查询接口使用Linq,因为它似乎最符合C#语言的特性,并且可以利用大量的.NET代码。
我已经做了一些研究,开始通过这个很棒的教程here构建了一个IQueryProvider。这使我走了很长一段路,但现在我对于让用户将表达式树转换为他们自定义代码的最佳方式感到困惑。
我正在努力找出为用户提供一个简单界面的最佳方式来指定如何将表达式树转换为自定义“代码”(例如,“SQL”),但看起来相当麻烦和复杂 - 我想这正是因为确实如此。
我的问题是,将表达式树转换为自定义语言的最佳方法是什么?
据我所知,我要使用“Context”类来执行自定义解析逻辑,但我使用的API似乎非常低级 - 是否有更高级别的操作来简单地将操作映射到字符串?