2011-10-31 1 views
2

필터 설명자가있는 DomainDataSource를 사용하지만 DomainDataSource (또는 DomainContext)가 이전 데이터를 캐싱하고 데이터베이스의 새로운 데이터로 교체하지 않는 것으로 보입니다.Silverlight RIA Services에서 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가 새 이름을 필터로 입력하면 데이터가 반입되지만 이전 (캐시 된) 이름이 표시됩니다. 나는 바이올린을 사용했고 데이터베이스와 웹 서비스에서 올바른 데이터가 반환 된 것을 알 수있었습니다.

이 기능을 끌 수있는 옵션이 있습니까?

답변

3

데이터에 LoadOption을 지정해야한다고 생각합니다.

정확히 기억이 나지 않아 설명서를 찾을 수 없지만 DomainDataSource에서 LoadingData 이벤트를 재정의해야한다고 생각합니다. args.MergeOption을 설정하십시오. 'RefreshCurrent'를 시도하십시오. 이 같은 :

+0

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