我正在写一个需要来源数据的工具。这个源将是用户指定的,并且可能是诸如SQL后端,专有数据库,平面文件系统之类的东西,谁知道。LINQ到自定义查询语言?
我想让我的接口获取这些类型的查询,以使用Linq,因为它似乎是最C#友好的,并且可以利用很多.NET代码。
我一直在做一些研究,并开始通过伟大的教程here构建IQueryProvider。它让我获得了很大的一部分,但现在我对让用户将表达式树转换为自定义代码的最佳方式感到困惑。
我想弄清楚为用户提供简单接口的最佳方式,以指定如何将表达式树变成自定义“代码”(即“SQL”),并且它看起来相当繁琐和复杂 - - 我想象,因为它就是这样。
我的问题是,将表达式树转换为自定义语言的最佳方式是什么?
最近我可以告诉大家的是,我使用“语境”类做我自定义的分析逻辑,但我使用API似乎相当低的水平 - 是否有任何更高级别的操作,我可以做简单的地图操作字符串?
这绝对是复杂而艰难的。据我所知,这是目前所需要的。你有代码段来显示你到目前为止?或者你陷入困境的地方? – 2012-04-24 19:14:30
我错过了一些东西。好像你在问别人写这个提供者。您正在提供表达式树,并希望其他人将其转换为SQL。我倒退了吗? – Marc 2012-04-24 19:19:05
@justin我会看看是否可以将一些代码拼凑在一起:它与我发送的教程链接上的内容没有什么不同。我在这方面的正确方法更加迷失。其中提出了以下问题: – 2012-04-25 04:42:52