我正在寫一個需要來源數據的工具。這個源將是用戶指定的,並且可能是諸如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