我的应用程序是使用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