2010-02-08 26 views
2

我有一個位於數據集合前的WCF服務。我想要一個服務調用,客戶端可以傳遞一個LINQ查詢或表達式樹來針對數據收集執行。有沒有合理的方式將LINQ查詢傳遞給WCF服務調用?如何將LINQ查詢傳遞給WCF服務

謝謝。

回答

2

這樣做的當前選項相當有限。序列化完整的Linq查詢是不可能的,幾乎出於同樣的原因,您不能序列化任意代碼並將其發送到某處執行(當然,您始終可以動態構建程序集,實現接口併爲您的查詢編寫代碼......但那時你已經做了一噸)。

我已經編寫了幾個系統來允許通過Linq數據源進行高度自定義的搜索功能。它基本上歸結爲決定你需要支持哪些類型的查詢。儘可能保持簡單,然後創建一個表示該數據結構的數據結構。如果你需要完整的概括性,那麼你將開始趨向於表情樹的東西,但這往往是爲了你的目的矯枉過正。

然後,您必須編寫一個轉換器,它接受您的自定義查詢數據結構並創建一個Linq查詢。使用適當的工具(如LinqKit)可以使這是一項非常簡單的任務。但你必須成爲表達式樹和他們的操作非常專家。

+0

不錯的答案,謝謝。 – Sako73 2010-02-08 20:48:20