Silverlight 4缓存问题?

时间:2011-01-11 09:40:23

标签: caching silverlight-4.0

我目前正在遇到一个奇怪的缓存问题。当我正式加载数据时,我返回给定日期内的所有数据,我的图表如下所示:

alt text

然后我过滤数据以返回相同日期范围的原始数据的子集(不重要),我得到以下数据视图:

alt text

但是,当我刷新数据的相同过滤视图时,我间歇地得到以下信息:

alt text

可以看出,并非所有数据都被缓存,而只有部分数据,即2010年12月12日和2010年12月5日(此处未显示)。我查看了我的查询,正确的数据被拉出来了。它只在表示层上,即在Mainpage.xaml.cs上,这个错误的数据似乎存在。

我已逐步完成代码,除了表示层之外,所有图层的数据都是核心。有谁之前经历过这个吗?是否有某种缓存在后台,当我将浏览器缓存时,将数据保留在后台?

如果有帮助,我在DomainContext的Load方法中的回调方法中使用LoadOperation ...

2 个答案:

答案 0 :(得分:1)

我想我已经解决了这个问题,到目前为止一直很好。我们需要的实际数据对于返回的每一行没有唯一属性。因此,我们最终做的是使用sql row_number()来获得我们认为是一致的唯一id。然而,事实并非如此,因此我们得到了这些问题,尽管它并没有完全解释为什么同样返回2个相同的数据。

无论如何,我最终做的是在返回的“唯一”id上附加一个随机数,这就是诀窍。

答案 1 :(得分:0)

是的我以前见过这个bug但是我没有设法正确追查工具包源代码中的原因。在某些情况下,图表系列似乎无法删除现有系列的所有视觉元素,因此其中一些是孤儿。结果是数据点的“残像”不会消失。

对于这个问题,我真的没有具体的解决方法。您在回调方法中进行更改的一种可能性是使用Dispatcher.BeginInvoke将任何集合更改移动到UI线程。