在Linq中选择多对多关系中的数据

在Linq中选择多对多关系中的数据,linq,poco,Linq,Poco,我有一个linq查询问题。 我的模型 public class Product : Entity { public virtual Brand Brand { get; set; } public virtual ICollection<Category> Categories { get; set; } //etc... public virtual ICollection<ProductProductShowcase> Product

我有一个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.ProductProductShowcases
ProductId
属性具有预期值,但
Product
属性为空


提前感谢。

您的
产品
属性已标记为虚拟,因此将使用延迟加载。如果要在初始查询中填充它,可以使用
Include(o=>o.Product)
(您已经在
ProductShowcases
属性中使用了Include。)

是,但问题是productShowcase.ProductShowcases集合中的产品对象为空。所以我需要包括productsHwCase.Product,但我不知道怎么做。
ProductShowcase productShowcase = RepositoryHelper.DataContext.ProductShowcases.Include(i => i.Contexts).Include(o => o.ProductProductShowcases).Where(o => o.Id == Id).SingleOrDefault();