2011-02-27 3 views
4

db에서 가져온 목록의 캐싱을 구현하고 싶습니다. 내 코드에서 이것을 가지고캐시 데이터 목록 asp.net C#

How can I cache objects in ASP.NET MVC?

: :이 봐 했어

var addresses = repository.GetAllAddresses();//returns IQueryable<string> 

질문에 답을 사용하여 내가이 캐시 할 수있는 방법 위?, 내가 만든 클래스 CacheExtensions,하지만 거기에서 어디로 갈지 확실하지 않습니다.

답변

4

일단 확장 메서드를 사용하면 간단하게 사용할 수 있습니다 (포함 된 네임 스페이스에 using 지시문을 추가하여 GetOrStore 메서드를 정의한 정적 클래스를 범위에 포함시키는 것을 잊지 마십시오.)이 GetOrStore<T> 확장 메서드를 볼 수 있습니다 :

IEnumerable<string> addresses = HttpRuntime 
    .Cache 
    .GetOrStore<IEnumerable<string>>(
     "addresses", 
     () => repository.GetAllAddresses().ToArray() 
); 

것들 참고 : 결과가이 키 아래에 저장됩니다, 그래서 우리는 캐시 키로 "주소"를 사용하는

  • .
  • IQueryable<string>에서 주소를 열심히 가져 와서 결과를 캐시가 아닌 쿼리에 저장하려면 .ToArray()을 호출합니다.