2012-06-26 3 views
1

EF를 사용하여 모든 DB 작업을 수행하는 ASP.NET MVC 앱을 만들고 있습니다.ASP.NET : 변경되지 않는 테이블 데이터에 대한 정적 컬렉션 만들기

데이터베이스에는 변경되지 않는 몇 가지 관련 테이블이 있는데, 처음 두 테이블이 요청되었을 때이 두 테이블의 데이터를 검색하는 정적 컬렉션을 만들려고했습니다. 때마다 데이터베이스를 때리는 것을 방지하기위한 개체입니다.

저는 ASP.NET에서 정적 객체를 피해야한다고 말하는 사람들을 여러 번 읽었으므로이 시나리오가 좋지 않거나 이와 같은 시나리오 (읽기 전용 및 소량 데이터)로 허용되는지 궁금합니다. 동시성 문제를 방지해야합니다).

또 다른 좋은 대안이 있는지 알고 싶습니다.

감사합니다.

답변

2

정확하게 동일한 이유로 수행 할 계획이었습니다. 그것은 이미 몇 년 동안 잘 작동 해 왔습니다.

데이터의 초기화가 올바르게 수행되었는지 확인하면됩니다. 초기화 할 때 염두에 두어야 :

  • 어떤 상황에서도
  • 당신 MUST NOT (앱이 당신이 휴가를가는되기 전에 2 분 교착 상태거나)에서 모든 가능한 경우 잠금 사용하지 마십시오 정적 생성자는
  • 는 캐시의 어떤 소비자가 데이터가 정말 정적이 아닌 경우 그것을

을 수정하는 기능이 없는지 확인에 실패하자 당신은 실제로 다음 꽤 자주 힘 그것을 다시 읽을 필요가있을 것이다 b가 아니라 최고의 솔루션입니다.

궁금한 점이 있으시면이 방법을 사용하여 국가 데이터, 통화 데이터 (기본 데이터, 금리가 아님), 판매 단위 데이터 (PC, M, kg 등)를 캐시합니다. 이들은 모두 데이터베이스에 저장되지만 거의 변경되지 않습니다.

0

정적 개체를 사용하는 것은 좋지 않습니다. RavenDB와 같은 것을 사용하여 설정이나 DB 데이터를 메모리에 저장하는 데 사용할 수 있습니다. 매우 작은 설치 공간과 매우 빠릅니다. 그것은 완전한 LINQ를 지원합니다.

관련 문제