2012-05-02 6 views
3

서로 많은 관계가 많은 두 개의 개체가 있습니다.Entity Framework에서 지연로드하는 항목

저는 데이터베이스 우선 접근 방식에서 Entity Framework를 사용하고 있습니다.

내 데이터베이스 프로파일 러는 한 세트의 객체를 가져올 때마다 A의 각 요소에 대해 다른 객체 세트 B를로드한다는 것을 보여줍니다. 지연로드가 발생하지 않았거나 B가 탐색 속성을 통해 액세스 할 때 가져올 수 있습니다. 엔티티

public virtual IQueryable<T> GetAll() 
{ 
    IQueryable<T> query = entities.Set<T>(); 
    return query; 
} 

모두 탐색 속성 virtual ICollection<T>로 구현됩니다 내 DbContext 내가 명시 적으로 내 DbContext 생성자에서 설정 Configuration.LazyLoadingEnabled = true이 곳

개체에 액세스하는 코드는 일반적인 접근 방식을 사용합니다.

내가 누락되었거나 잘못 접근하고 있습니까? 탐색 속성을 제거하고 다른 쿼리를 통해 필요한 항목을 명시 적으로로드해야합니까?

+0

로드 된'A' 엘리먼트를 디버거에서보고 있습니까? 'B' 콜렉션으로'A' 요소를 볼 때 디버거로 느린 로딩을 트리거한다는 것을 기억하십시오. – Slauma

+0

'LazyLoadingEnabled'를 false로 설정하고 나서'B' 컬렉션이로드되지 않아서 왜 –

+0

인지 확실하지 않습니다. 이는 코드에서 무언가가 해당 탐색 속성을 터치하고 지연로드를 실행한다는 것을 의미합니다. @Slauma 위에서 언급 한 디버깅 도구도이를 수행합니다. –

답변

0

나는이 질문에 마지 못해 전문가가 있음 : 그러나이 경우 ProxyCreationEnabled = false를 DbContext에 설정하면 도움이되지 않습니까? 미안 점이 너무 새롭다면

관련 문제