我的應用程序是使用ADO.NET數據服務的客戶端/服務器解決方案。數據服務暴露transactionSummaryData如下:ADO.NET數據服務不動態更新
public IQueryable<TransactionSummary> TransactionSummaries
{
get { return MainForm.transactionSummaryData.Items.AsQueryable(); }
}
的transactionSummaryData是類型TransactionSummaries其項目屬性被定義爲如下的:
public List<TransactionSummary> Items
在客戶端,我有一些控制數據綁定到LINQ查詢該工程對TransactionSummaries:
AvailibilityBox.DataContext = (from salesdata in srv.TransactionSummaries
where salesdata.PerformanceID == selectedshow.performancedata.PerformanceID
select salesdata);
這被執行多次在selectedshow.performancedata.PerformanceID變化對用戶導航UI的響應。
目前爲止都不錯。但是,當服務器上的transactionSummaryData由服務器內的其他代碼更新時,客戶端將繼續顯示「陳舊」數據,但不會注意到該更新。我認爲這是由於某種緩存。對代碼進行調試後,我可以看到服務器發送正確的數據,但客戶端上的LINQ查詢繼續返回陳舊的數據。重新啓動客戶端會導致顯示正確的數據。
我想我在這裏錯過了一些明顯的東西,但我看不到如何控制客戶端上的任何緩存或使對象無效而無需重新建立連接。
我無法找到 「ObjectTrackingEnabled」 關於DataServiceContext財產我使用(不是DataContext的)。 – 2009-06-21 04:39:56