所以我有以下情況,我不知道如何處理它。IQueryable表達式與文字
在我們構建的應用程序中,我們有一個ReferenceDataService,用於通過RIA服務加載數據。查詢在客戶端以IQuerable的形式構建並提交給服務器進行檢索。現在大多數提交的參考查詢都是相同的並且被多次調用,因此我想要從實體緩存中爲這些查詢提供服務。
下面是生成的查詢表達式的一個示例,我突出顯示了查詢更改的區域。有些情況下,查詢有附加標準,但大多數人可能不需要。
Chime.DataModel.classification[]
.Where(c => ((value(Chime.Modules.Reference.Client.Agent.ReferenceDataLoader+<>c__DisplayClass20).includeSchema
*AndAlso c.class_code.StartsWith(value(Chime.Modules.Reference.Client.Agent.ReferenceDataLoader+<>c__DisplayClass20).schema))*
OrElse (Not(value(Chime.Modules.Reference.Client.Agent.ReferenceDataLoader+<>c__DisplayClass20).includeSchema)
AndAlso *c.parent_code.StartsWith(value(Chime.Modules.Reference.Client.Agent.ReferenceDataLoader<>c__DisplayClass20).schema))))*
.OrderByDescending(c => c.value_scheme_ind)
.ThenBy(c => c.sequence_number)
.ThenBy(c => c.class_label)
所以我想要做的是實際上緩存查詢,如果另一個進來以相同的標準我可以擊中緩存。我遇到的問題是查詢中使用的字面值似乎不可用,因此我無法確定一個查詢是否與另一個查詢不同。例如架構代碼無處可尋。它必須在某個時刻發送到服務器,但我不確定如何才能完成。
有沒有人知道一種方法來做到這一點或遇到此前?
戴夫
上面的摘錄是從調用ToString()? – Jeff 2011-05-24 01:19:15