2008-12-09 80 views
1

我剛開始深入ADO.NET數據服務的項目,我很快遇到了一個問題。起初我對這個表現感到驚訝,但後來我意識到數據被緩存了。我的項目依賴於實時數據,我很樂意使用ADO.NET數據服務REST查詢語法(無需使用WCF或SOAP),但無需緩存。ADO.NET數據服務'Astoria'和緩存

我在ADO.NET數據服務介紹頁面(here)看到他們還沒有API支持來管理緩存持續時間或類似的東西。

任何人有任何想法如何完成這一點,或關閉緩存?

+0

Hrmmm, 我會等待這一個答案,因爲我不知道實際的數據被緩存。您是否確定這是正在緩存的數據,而不是針對您用於訪問數據的每個基於REST的URI處理的LINQ查詢? – 2008-12-09 16:29:58

回答

2

默認情況下,數據上下文有MergeOption設置爲AppendOnly。這意味着重新請求只會添加新的實體並且不會更新現有的實體。嘗試將MergeOption設置爲OverwriteChanges:

this.context.MergeOption = MergeOption.OverwriteChanges; 

當我注意到這個時,這對我有用!如果您使用的是實時數據,那麼您可能需要使用NoTracking選項完全關閉更改跟蹤。

0

這種聯繫是有益的,但它並沒有真正談論的ETag和緩存,它只是提到了ETags可以使用用於緩存的。你有一個例子嗎?

0

在深入細節上ETag