문제

데이터 캐싱을 사용하려는 경우 연기 로딩을 사용할 때 충돌에 대해 걱정해야합니까? LINQ를 사용하면 내 데이터 제어를 잃고있는 것 같습니다.

도움이 되었습니까?

해결책

LINQTOSQL 및 ENTITYFRAMEWORK는 두 기능 (지연된로드 및 데이터 캐싱)을 모두 제공합니다.

예를 들어, 처음에 고객을로드하면 해당 고객이 캐시되고 다시 요청하면 동일한 인스턴스를 얻을 수 있습니다.

해당 초기로드 중에 고객의 주문을로드하지 않으면 해당 고객 인스턴스의 주문 속성은 언로드 상태에 있습니다. 해당 주문을로드하면 해당 속성을 통해 주문 인스턴스를 사용할 수 있습니다.

  • LINQTOSQL은 처음으로 사용되는 속성을로드합니다.
  • EntityFramework는 부하 방법을 사용하도록 요청할 때 속성을로드합니다 (로드 방법 사용).

두 기술 모두에서 컨텍스트는 캐싱을 수행하는 일입니다. 따라서 둘 이상의 컨텍스트 인스턴스를 사용하는 경우 실제로 동일한 고객을 대표하는 다른 고객 인스턴스를 관찰 할 수 있습니다.


의견으로 질문을 해결합니다. 나는 linqtosql에 대해 이야기 할 것이지만,이 것들은 EntityFramework에서도 작동해야합니다.

지연된로드를 종료하면 데이터 캐싱이 여전히 작동합니까?

예, 그것은 효과가 있습니다. 그러나 그들은 완전히 독립적이지 않습니다.

데이터 캐시 플러싱은 데이터 가능 및 시간에 변경 사항이 있는지 여부에 따라 달라 집니까?

캐시를 플러시하거나 재설정하지 않습니다. 신선한 캐시를 원한다면 새로운 데이터 컨텍스트를 만드는 것입니다. DataContext의 각 인스턴스에는 자체 캐시가 있습니다.

  • 데이터베이스의 변경 사항으로 캐시 업데이트를 당기는 방법이 있습니다. 새로 고치다.
  • 데이터베이스에서 캐시로 변경 사항을 푸시하는 방법은 없습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top