LINQPad가 LINQ2SQL 쿼리에서 캐시되지 않은 결과를 갖도록하려면 어떻게합니까?LINQPad의 캐쉬되지 않은 결과
1)) (A) 좁은 방을 선택 ... 어디 MyThings의에서 (일부 데이터를 검사;
시나리오는 이것이다 2) (서비스 호출) 직후에 LINQPad 외부에서 데이터 수정 3) MyThings에서 a ...를 선택하여 일부 데이터를 다시 검사합니다.
캐싱 결과 인 것 같습니다. :/
LINQPad가 LINQ2SQL 쿼리에서 캐시되지 않은 결과를 갖도록하려면 어떻게합니까?LINQPad의 캐쉬되지 않은 결과
1)) (A) 좁은 방을 선택 ... 어디 MyThings의에서 (일부 데이터를 검사;
시나리오는 이것이다 2) (서비스 호출) 직후에 LINQPad 외부에서 데이터 수정 3) MyThings에서 a ...를 선택하여 일부 데이터를 다시 검사합니다.
캐싱 결과 인 것 같습니다. :/
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
잊고 말하기 : 감사합니다! :-) –
나는 매일 LP를 사용하며 결코이 시나리오를 사용하지 않습니다. 세부 사항이 없으면 대답하기가 어렵습니다. LP가 아무 것도 캐싱하지 않는다는 것을 확신 할 수 있습니다. 아마도 Linq에 대해 SQL을 처음 접했을 것이며 예상하지 못한 방식으로 행동했을 것입니다. (예 : 지연로드) – John