2016-07-27 5 views
1

엔티티 프레임 워크 코어를 사용하고 있습니다. 제품 목록을 만들고 관련 리뷰를 포함하고 작성자 데이터를 검토하려고합니다. 엔티티 프레임 워크 : InvalidOperationException 여러 수준의 속성을 포함 할 때

나는 3 개 기관이 있습니다

public class Product 
{ 
    [Key] 
    public int ID { get; set; } 
    public ICollection<Review> Reviews {get; set;} 
} 

public class Review 
{ 
     [Key] 
     public int ID { get; set; } 
     public Product Product {get; set;} 
     public Customer Author { get; set; } 
} 

public class Customer 
{ 
     [Key] 
     public int ID { get; set; } 
     public ICollection<Review> Reviews { get; set; } 
} 

this answer에 다스 려, 내가 리뷰와 저자와 제품 목록 요청 :

context.Products.Include(p=> p.Reviews.Select(r => r.Author)).ToList(); 

다음 오류가 발생합니다 :

System.InvalidOperationException
메시지 = 해당 속성 expression 'p => {[p]의 검토 r에서. [r] .Author} 선택 검토가 유효하지 않습니다. 표현식은 속성 액세스를 나타냅니다. 't => t.MyProperty'

모든 조언을 크게 주시면 감사하겠습니다.

+0

당신은 어떤 유창 매핑을 가지고있다? –

+0

유창한 매핑이 없습니다. –

답변

1

아직하지 뭔가 또는 누락 된 것으로 보이지만, 어쨌든 당신은 그런 식으로 작업을 수행 할 수 있습니다

context.Products.Include(p => p.Reviews).ThenInclude(x=>x.Author).ToList(); 
+0

Thanks @ Bassam :) 그러나 귀하의 예에서 'x'유형은 검토가 아닌 ICollection 입니다. 그래서 나는 이것이 효과가 있다고 생각하지 않는다. –

+0

@StevePaul 이것은 귀하의 질의와 같은 exaclty이며 그것은 작동 중입니다! 그냥 시도해보십시오 ^^ –

+1

내 apoligies - 당신 말이 맞아 내가 틀렸어! 어떤 이유로 컴파일 오류가 발생했습니다. 내 모델 클래스를 다시 컴파일하고 오류가 사라졌습니다! 나는 매우 혼란 스럽다. 하지만 시간 내 주셔서 감사합니다 :) –