2011-07-01 4 views
2

거대한 개체가 메모리를 차지하고 참조가 해제되는 몇 가지 문제가 발생합니다. .Net Memory Profiler를 사용하여 루트 객체를 찾고 Entity Framework 클래스를 참조합니다.구성 파일에서 Entity Framework의 캐싱을 비활성화하는 방법

코드를 chanign하지 않고 Entity 프레임 워크에서 쿼리 된 개체의 캐싱을 해제 할 수있는 방법이 있습니까? 구성 파일에 뭔가있을 수 있습니다?

+3

[정적 컨텍스트를 사용하지 않는 이유는 무엇입니까?] (http://stackoverflow.com/questions/3653009/entity-framework-and-connection-pooling/3653392#3653392) 서버 응용 프로그램 또는 다중 스레드 응용 프로그램 변경의 경우 * ** ** ** ** **하지 말았어야합니다. –

+0

완벽한 타이밍. :) – Asdfg

답변

3

ObjectContext를 처리하는 데 도움이되는 using 문이 있어야합니다. EF는 쿼리 된 개체의 개체 그래프를 유지합니다. ObjectContext에서 엔티티를 분리하기 위해 objectContext.Detach(Entity);을 사용할 수 있다고 생각합니다.

+0

+1 : Entity Framework 컨텍스트는 IDisposable이며 신속하게 폐기되지 않으면 많은 리소스를 소비 할 것으로 예상됩니다. – StriplingWarrior

+2

내 EF 개체 컨텍스트가 Static 클래스에있는 경우 어떻게됩니까? 이것은 붉은 깃발을 올리는가? – Asdfg

+1

로드하는 모든 개체가 응용 프로그램의 수명 동안로드 된 상태로 유지되므로 그렇게 생각할 것입니다. IMO 당신의 컨텍스트는 필요한만큼 데이터를 끌어 들이지 않은 상태에서 작성되어야하며, 완료되면 버려야합니다. –