2010-05-12 2 views
1

저는 첫 번째 MVC 솔루션을 구축하고 데이터베이스 검색/삽입/업데이트를위한 리포지토리 패턴을 사용했습니다.LINQ to SQL 리포지토리 - 캐싱 데이터

저는 리팩토링 중입니다. 실제로 저장소에있는 메소드가 매번 데이터베이스에 닿아 있다는 사실을 눈치 챘습니다. 이것은 잔인한 것처럼 보이고 내가 이상적으로하고 싶은 것은 주 데이터 객체를 '캐시'하는 것입니다. 'GetAllAdverts'데이터베이스에서 'AddAdvert(), DeleteAdvert() 등 FindAdvert(), DeleteAdvert() 등의 캐시 된 개체에 대해 쿼리 할 수 ​​있습니다.'

또한 업데이트/삭제/추가 고려해야합니다. 이 캐쉬 객체와 데이터베이스에 기록한다.

이처럼 가장 적합한 방법은 무엇입니까?

이런 유형의 것에 대한 나의 지식은 최소한이고 정확한 방향으로 나를 가리 키기위한 조언 /지도/지도서를 찾고 있습니다.

미리 감사드립니다.

+0

http://stackoverflow.com/questions/343899/how-to-cache-data-in-a-mvc .. 더 많은 코드를 게시 할 수 있습니다 -application # 349111 – David

답변

0

이것은 내 레이더를 치고 방금 이미 문제를 해결했다고 가정합니다. 그러나 그렇지 않다면 미리 컴파일 된 LINQ 쿼리를 살펴볼 것입니다. 다음과 같은 것 :

 private static Func<SomeDataContext, int, PersonDto> _getPersonByIdQuery = 
     CompiledQuery.Compile<SomeDataContext, int, PersonDto>(
      (dataContext, personId) => 
       dataContext.PersonDtos.where(c => c.PersonId == personId).FirstOrDefault() 
       ); 

datacontext 내부에 이와 비슷한 것을 넣은 다음 내부 메소드를 호출하여 호출합니다. 그러면 리트리버/세이버가 내부 방법을 호출합니다. 말이 돼? 필요하다면 나는

행운을 빈다

,

저스틴