서로 많은 관계가 많은 두 개의 개체가 있습니다.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
이 곳
개체에 액세스하는 코드는 일반적인 접근 방식을 사용합니다.
내가 누락되었거나 잘못 접근하고 있습니까? 탐색 속성을 제거하고 다른 쿼리를 통해 필요한 항목을 명시 적으로로드해야합니까?
로드 된'A' 엘리먼트를 디버거에서보고 있습니까? 'B' 콜렉션으로'A' 요소를 볼 때 디버거로 느린 로딩을 트리거한다는 것을 기억하십시오. – Slauma
'LazyLoadingEnabled'를 false로 설정하고 나서'B' 컬렉션이로드되지 않아서 왜 –
인지 확실하지 않습니다. 이는 코드에서 무언가가 해당 탐색 속성을 터치하고 지연로드를 실행한다는 것을 의미합니다. @Slauma 위에서 언급 한 디버깅 도구도이를 수행합니다. –