2012-05-13 3 views
0

나는 이런 식으로 뭔가를 보이는 개체 계층 구조를 가지고포함하여 계층 구조

Book book = (from b in context.Books.Include("Pages").Include("Paragraphs") 
    .Include("Pages.Paragraphs") where CONDITION).SingleOrDefault(); 

book.Pagesbook.Paragraphs이로드되어 있지만 book.Pages[i].Paragraphsnull입니다.

데이터베이스를 검사 할 때 데이터가 올바르게 표시됩니다 (연결 열이 모두 정확하게 채워짐).

또한 lamda 구문을 시도했지만 매개 변수가 엔터티가 아닌 컬렉션 인 경우 어떻게 작동 하는지를 보지 못했습니다. 하나는 다음과 같이 수행 할 수 있습니다

.Include(s => s.Paragraphs.Select(p => p.Id == 1) 

을하지만 난 하나가 book.Pages의 각 Page에 대한 Paragraphs 컬렉션로드되도록 지정하기 위해 람다 구문을 사용할 수 표시되지 않습니다.

뭔가가 누락되었거나 이것이 Entity Framework의 제한 사항입니까? 그것이 한계라면, 어떻게 해결할 수 있습니까?

+0

을 음, 나는 더 많은 행운을 자신을 모델을 시도하고 있었다 : 'book.Pages는 [내가] .Paragraphs' 내가를 내가 이전 실행에 추가 단락 –

+0

이상한 간소화했다.. 실제 문제가 간결한 질문을하기에 조금 떨어졌습니다. 내가 제기 한 정확한 질문을 다시 만들고 거기에서 무언가가 깨질 때까지 앞으로 나아갈 것입니다. 조사 해줘서 고마워요. –

+0

투르 'virtual' 키워드가 실제 코드에서 누락되었습니다. 문제를 찾을 수 있도록 도와 주셔서 다시 한 번 감사드립니다. –

답변

0

대상 코드를 묻는 목적으로 작성된 코드가 아니기 때문에 virtual 키워드가 누락되었습니다 .EF는 .Include("Pages.Paragraphs")을 통해 요청 된 추가 데이터를로드 할 수 없다고 불평하지 않았습니다. . 그 요청을 무시

public class Page 
{ 
    public /* was missing: virtual*/ List<Paragraph> Paragraphs { get; set; } 
}