0

일부 탐색 속성을 노출하는 엔터티 (연락처)에 바인딩 된 요소가 있습니다.Eager로드 된 아이템로드?

일부 작업 (예 : "하위 항목로드"버튼)에서 Contacts는 실행하기 전에 ObjectQuery로 할 수있는 것처럼 모든 하위 항목과 하위 항목을로드해야합니다. 예 (의사) :

DirectCast(element.DataContext, Contact).SubContacts. _ 
    Include("Address.State"). _ 
    Load() 

나는 모델 자체를 쿼리뿐만 아니라 경우, 위의 예와 같이 항목을 다시로드하여도 결과를 형성 할 수 있어야합니다.

저는 이것이 Entity-Framework의 일부분이어야한다고 생각합니다.

답변

1

는 내가 질문을 따라 긍정적 아니지만, 내가 확인하자 :

당신은 이미로드 한 엔티티를 먹고 싶어, 그때 그 속성에 대한 경로를 포함하여 탐색 속성 을로드합니다. 첫 번째 객체를로드하는 데 사용한 컨텍스트와 동일한 컨텍스트를 사용하는 한 실제로 그렇게 어렵지는 않습니다.

중요한 점은 엔터티를 반환하는 쿼리를 수행 할 때마다 Entity Framework가 이미 관련된 관련 개체와 연결된다는 것입니다. 그래서 당신이 정말로 원하는 것은 여분의 데이터를 반환하는 새로운 쿼리를 생성하는 것입니다.

Entity Framework의 모든 참조에는 CreateSourceQuery이라는 메서드가 있습니다. 그것은 개체 쿼리를 반환, 그래서 당신은이 작업을 수행하는 데 사용할 수 있습니다 (죄송합니다, C 번호) :

AlreadyLoadedContact.SubContacts.CreateSourceQuery().Include("Address.State").ToList(); 

가 ToList 호출이 쿼리를 실행하고, 엔티티 프레임 워크는 모든 결과를 가지고 자동으로 SubContacts EntityCollection에 추가합니다 .

+0

놀라워요! 정말 고마워, 정말 도움이 됐어! – Shimmy