2010-10-27 65 views
6

我有一個功能請求,可以稍後保存用戶的搜索。保存LINQ查詢以備後用的最簡單方法是什麼?

上飛現在我建立LINQ語句根據用戶指定的內容。

於是我開始想,是對我有一個簡單的方法來簡單地執行用戶構建的查詢,並堅持它的地方,最好是我的數據庫,這樣我可以在以後檢索它?

是否有持續查詢XML或JSON也許,再後來重建查詢的一些方法?

回答

3

以前從未做過這個,不過我有這樣的想法:

,而不是直接具有針對你的數據庫運行查詢,如果你有它運行鍼對OData終點,你可以想見,提取網址作爲查詢字符串生成,並保存該URL供以後使用。由於OData已經有了一個很好的規範,你可以從其他人的勞動中獲益。

+0

這不是一個壞主意。那麼我需要在我的服務器上構建一個OData端點,並在我的網站上使用它來保存查詢?這是這個想法嗎? – Joseph 2010-10-27 19:00:14

+0

是的,這是主意。整潔的事情是,終端將按照您希望的那樣公開,您可以將其限制爲只包含模型的一個子集。就像我們可以通過LinqPad連接到StackOverflow來發現有趣的指標一樣,您可以使某些客戶或業務分析師對您的數據具有靈活的可查詢視圖。此外,通過創建額外層,即使您的基礎模型發生更改,您也可以確保OData端點的模型保持不變。 – StriplingWarrior 2010-10-27 19:18:04

0

看一看Expression類。這將允許您預編譯查詢。雖然堅持這一點以供以後用於數據庫以獲得更好的性能是值得懷疑的。

+0

像System.Data.Linq.CompiledQuery還是你指的是什麼東西? – Joseph 2010-10-27 18:47:27

3

我會與特定的域對象去這裏即使這樣好吃的東西確實存在 - 當你保存LINQ查詢序列化和你的潛在模式的轉變,無效每個人的保存的查詢會發生什麼。使用你自己的數據格式應該在一定程度上保護你。

+0

我並不真的擔心我的潛在模式發生變化。我並不是說這不是一個有效的擔憂,但在我的情況下,我不必擔心我的模型會改變。 – Joseph 2010-10-27 20:36:11

+0

不是在談論你的模型,而是用於序列化查詢的(可能不存在的)工具。我敢打賭,隨着框架的發展,內部生活將會發生什麼變化。 – 2010-10-27 20:49:27

0

我寫這篇文章,因爲我在PDC10看this presentation。在1小時之後,他展示了他如何爲表達式樹構建JSON序列化程序。你可能會覺得很有趣。

相關問題