在Silverlight RIA服务中禁用DomainContext/DomainDataSource缓存
我使用带有过滤器描述符的DomainDataSource,但似乎DomainDataSource(或DomainContext)正在缓存旧数据,而不是用数据库中的新数据替换它在Silverlight RIA服务中禁用DomainContext/DomainDataSource缓存,silverlight,wcf,caching,ria,Silverlight,Wcf,Caching,Ria,我使用带有过滤器描述符的DomainDataSource,但似乎DomainDataSource(或DomainContext)正在缓存旧数据,而不是用数据库中的新数据替换它 <riacontrols:DomainDataSource AutoLoad="True" LoadSize="5" Name="employeeDomainDataSource" QueryName="G
<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>
我还有一个数据寻呼机控件
假设用户A和B加载数据。用户B在编辑模式下更改员工的姓名。用户A键入该新名称作为筛选器,将获取数据,但显示旧的(缓存的)名称。我使用了fiddler,我可以看到正确的数据是从数据库和Web服务返回的
是否有任何选项可以关闭此选项?我认为您需要在数据上指定LoadOption
我记不清了,也找不到文档,但我相信您需要覆盖DomainDataSource上的LoadingData事件;并设置args.merge选项。请尝试“RefreshCurrent”。您应该在加载方法中将LoadBehavior设置为RefreshCurrent: 这样地:
context.Load(查询,LoadBehavior.RefreshCurrent,loadOpt=>{},null)代码>