2010-08-24 3 views
1

LINQPad가 LINQ2SQL 쿼리에서 캐시되지 않은 결과를 갖도록하려면 어떻게합니까?LINQPad의 캐쉬되지 않은 결과

1)) (A) 좁은 방을 선택 ... 어디 MyThings의에서 (일부 데이터를 검사;

시나리오는 이것이다 2) (서비스 호출) 직후에 LINQPad 외부에서 데이터 수정 3) MyThings에서 a ...를 선택하여 일부 데이터를 다시 검사합니다.

캐싱 결과 인 것 같습니다. :/

+0

나는 매일 LP를 사용하며 결코이 시나리오를 사용하지 않습니다. 세부 사항이 없으면 대답하기가 어렵습니다. LP가 아무 것도 캐싱하지 않는다는 것을 확신 할 수 있습니다. 아마도 Linq에 대해 SQL을 처음 접했을 것이며 예상하지 못한 방식으로 행동했을 것입니다. (예 : 지연로드) – John

답변

5

LINQPad는 F5를 누를 때마다 새로운 DataContext를 인스턴스화하므로 쿼리 실행간에 캐싱의 기회가 없습니다. 같은 쿼리에서 두 번 덤프 경우, 두 번째 결과는 캐시합니다 : 이것은 SQL의 객체 추적에 LINQ의 미덕입니다

Customers.First (c => c.Name == "John").Dump(); 
Thread.Sleep (5000); 
Customers.First (c => c.Name == "John").Dump(); // Result will be cached 

. 일반적으로 다음과 같이 개체 추적을 해제하여 해제 할 수 있습니다.

ObjectTrackingEnabled = false; 
Customers.First (c => c.Name == "Tom").Dump(); 
Thread.Sleep (5000); 
Customers.First (c => c.Name == "Tom").Dump(); // Result will not be cached 
+0

잊고 말하기 : 감사합니다! :-) –

관련 문제