2012-08-15 3 views
0

사이트의 모든 사용자가 사용하는 몇 가지 데이터 세트가 있습니다. 나는 전통적으로 이것을 캐싱 할 것이다.엔티티 프레임 워크 컨텍스트 열기

내 현재 EF 설치 프로그램은 uow 및 저장소 패턴을 사용하므로 단일 트랜잭션에 컨텍스트를 사용하여 처분하는 경향이 있습니다.

일부 사용자 상호 작용을 도입 할 예정이므로 이전에 완전히 정적 인 데이터는 사용자가 추가, 삭제 및 수정하도록 허용되지 않습니다. 필자는 데이터가 2 분마다 새로 고쳐지기 때문에 여전히 캐싱을위한 합리적인 후보라고 평가합니다.

한 가지 옵션은 캐시 아이디어를 유지하는 것이지만 변경이있을 때마다 검색하고 다시 캐시하는 것입니다. 가장 큰 데이터 세트는 약 5-10k 행을 갖습니다.

내가 생각한 또 다른 옵션은 내가 열어 둔 (정적) 각 데이터 세트에 대해 단일 컨텍스트를 갖고 그런 식으로 데이터를 관리하는 것입니다. 저는 이것이 EF에 상당히 익숙해 져서 이것이 좋은지 나쁜지 잘 모르겠지만 액면 그대로 캐싱이 작동하는 방식과 비슷합니다. 내가 확신 할 수없는 유일한 것은 Include()를 추적하고 사용할 수 없다고 생각할 때 추가 테이블 데이터를 처리하는 방법입니다.

누구나이 문제에 대해 조언을 얻었습니까?

답변

0

다른 접근 방식을 사용했습니다.

당 거래가 아닌, 나는 이제는 httprequest 당 문제를 해결하여 문제를 해결합니다.

0

확실히 데이터 세트를 캐시하고 단일 원자 트랜잭션 후에 컨텍스트를 처리해야합니다.

Alex James가 위대한 blog post을 작성했습니다.

두 가지 중요한 점은 컨텍스트가 스레드로부터 안전하지 않으며 개체 컨텍스트가 이전 트랜잭션에서 남게되어 결과가 변경 될 수 있다는 것입니다.