2011-10-31 61 views
2

我使用带有过滤器描述符的DomainDataSource,但似乎DomainDataSource(或DomainContext)正在缓存旧数据,而不是用数据库中的新数据替换它。在Silverlight RIA服务中禁用DomainContext/DomainDataSource的缓存

<riacontrols:DomainDataSource 
     AutoLoad="True" 
     LoadSize="5"       
     Name="employeeDomainDataSource" 
     QueryName="GetEmployeeQuery" Width="0" DomainContext="{Binding EmployeeContext}"> 
     <riacontrols:DomainDataSource.FilterDescriptors>     
      <riacontrols:FilterDescriptor IsCaseSensitive="False" PropertyPath="Name" Operator="Contains" Value="{Binding ElementName=NameFilter, Path=Text}"/> 
     </riacontrols:DomainDataSource.FilterDescriptors> 
    </riacontrols:DomainDataSource> 

我也有一个DataPager控件。

假设用户A和B加载数据。用户B在编辑模式下更改员工姓名。用户A输入该新名称作为过滤器,数据将被提取,但会显示旧的(缓存的)名称。我用小提琴手,我可以看到正确的数据从数据库和web服务返回。

有什么选择我可以关闭它吗?

回答

3

我认为你需要在数据上指定一个LoadOption。

我不记得确切,我找不到文档,但我相信你需要重写DomainDataSource上的LoadingData事件;并设置args.MergeOption。试试'RefreshCurrent'。

+0

http://www.telerik.com/forums/cannot-reload-data –