2010-05-02 4 views
0

이전에 전달 된 매개 변수를보고 LINQ to SQL 쿼리를 캐싱 할 수있는 방법이 있습니까?LINQ를 사용하여 쿼리 결과를 캐시하려면 어떻게합니까?

일부 데이터베이스 호출은 L2S 캐시를 사용하지만 응용 프로그램이 다시 시작 되더라도 캐시가 다시로드되고 데이터베이스에 다시 묻지 않는 영구 솔루션을 찾고 있습니다.

C# 용 프레임 워크가 있습니까?

+1

"응용 프로그램이 다시 시작되는 경우에도 ..."이미 존재하는 데이터베이스보다 더 적합한 응용 프로그램 세션에서 캐시를 저장하려는 의도는 무엇입니까? – jeffora

+0

나는 경쟁 시스템이있다. 일단 경쟁이 완료되면, '닫힌'상태에서 동일한 관계에 대해 DB를 재 쿼리 할 필요가 없다. –

답변

3

Linq-to-SQL은 실제로이 용도로 설계되지 않았으므로 문맥은 실제로는 길이가 짧으며 길이가 짧습니다.입니다. 특정 쿼리를 캐시하려면 컨텍스트 자체에 의존하지 않고 다른 미디어를 사용하는 것이 좋습니다. 당신은 그냥 거의 변경하지 논스톱 액세스 할 몇 가지가있는 경우 Caching the results of LINQ queries

는 다른 방법으로, 단지 결과의 List<T> 또는 다른 형태의 캐싱을 고려하십시오

는 여기에 내가 무엇을 의미하는지에 대한 아이디어를 얻기 위해 하나 개의 옵션입니다 필요할 때 다시 캐시하게합니다.

0

결과가 응용 프로그램간에 다시 캐시되도록하려면 네트워크 연결이 끊어진 경우를 대비하여 캐시를 유지하려는 occasionally connected application이있는 것 같습니다. 이것이 사실이라면 정확하게 수행하는 Sync Framework을 살펴보십시오. 또한 캐시 된 데이터를 변경할 수 있으며 클라이언트가 연결을 다시 얻으면 데이터를 전송하고 충돌을 해결할 수 있습니다. 디스크에 캐시를 유지하므로 (일반적으로 SQL Server Compact를 사용하여) 응용 프로그램을 다시 시작하거나 컴퓨터를 다시 시작한 후에도 캐시는 유지됩니다.

관련 문제