2011-08-16 4 views
2

linq 쿼리 문제가 있습니다. 내 모델;Linq에서 많은 관계의 데이터를 선택하십시오

public class Product : Entity 
{ 
    public virtual Brand Brand { get; set; } 
    public virtual ICollection<Category> Categories { get; set; } 
    //etc... 

    public virtual ICollection<ProductProductShowcase> ProductProductShowcases { get; set;}  
} 

public class ProductShowcase : ContextContainer<ProductShowcaseContext> 
{ 
    public virtual ICollection<ProductProductShowcase> ProductProductShowcases { get; set; } 
} 

public class ProductProductShowcase : Entity 
{ 
    public int ProductShowcaseId { get; set; } 

    public int ProductId { get; set; } 

    public virtual ProductShowcase ProductShowcase { get; set; } 

    public virtual Product Product { get; set; } 
} 

나는 관련 제품ProductShowcase 개체를 선택합니다. 나는 노력했다. 쿼리 결과 productShowcase.ProductProductShowcases에서

ProductShowcase productShowcase = RepositoryHelper.DataContext.ProductShowcases.Include(i => i.Contexts).Include(o => o.ProductProductShowcases).Where(o => o.Id == Id).SingleOrDefault(); 

예상 값 ProductId 속성 만, null로 Product 속성이 있습니다.

미리 감사드립니다.

답변

1

Product 속성은 가상으로 표시되므로 지연로드가 사용됩니다. 초기 쿼리에서 채우려면 Include(o => o.Product) (이미 ProductProductShowcases 속성에 포함 포함)을 사용할 수 있습니다.

+1

예, 문제는 productShowcase.ProductProductShowcases 컬렉션에서 Product 개체가 null 인 것입니다. 그래서 ProductProductShwcase.Product를 포함시킬 필요가 있지만 그것을 알아 내지 못했습니다. – berdem

+1

이 사례에 대한 답변이 없습니까? 이상한 - .- – berdem

관련 문제