2010-12-27 2 views
3

나는 RIA 서비스에서 도메인 서비스를 장식하여 실버 라이트에서 클라이언트 측 캐싱을 사용하려고합니다.누구나 Silverlight Ria 도메인 서비스 OutputCaching을 사용할 수 있습니까?

[OutputCache(OutputCacheLocation.Client,3600,UseSlidingExpiration = true)] 
public IQueryable<State> GetMyStates() 
{ 
    return entities.States; 
} 

또한 필터가있는 DomainDataSource를 사용합니다.

<riaControls:DomainDataSource.FilterDescriptors> 
<riaControls:FilterDescriptor 
    Operator="StartsWith" 
    PropertyPath="StateCode" 
    Value="{Binding ElementName=txtElementName, Path=Text}" /> 
</riaControls:DomainDataSource.FilterDescriptors> 

관찰 가능한 캐싱 효과가 보이지 않으면 모든 필터 변경과 모든 페이지 새로 고침에서 데이터 소스로 돌아갑니다.

도메인 서비스가 작동하기 위해 클라이언트 쪽 캐싱을받은 사람이 있습니까?

답변

3

추가 LINQ 쿼리를 지정하려고하면 출력 캐싱을 사용할 수 없습니다. 상태 이름에 대한 문자열 매개 변수를 수락 한 쿼리 메서드를 사용하고 위의 출력 캐시를 사용하도록 위 코드를 변경해야합니다.

[OutputCache(...)] 
public IQueryable<State> GetMyStates(string stateNamePart) 
{ 
    return entities.States.Where(st => ...); 
} 

당신은 문서의 끝으로 RIA Service Output Caching의 OutputCaching 지원에 대해 더 읽을 수 있습니다, 그는 캐싱이 작동하려면 더 LINQ 쿼리를 허용하지에 대한 제한을 지적한다.

+0

감사합니다. 지금이 기술을 사용하지는 않았지만 설명과 기사가 내 질문에 답변했습니다. –

관련 문제