【问题标题】:Select data in many to many relationship in Linq在Linq中选择多对多关系中的数据
【发布时间】:2011-08-16 19:12:26
【问题描述】:

我有一个 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 productShowcase = RepositoryHelper.DataContext.ProductShowcases.Include(i => i.Contexts).Include(o => o.ProductProductShowcases).Where(o => o.Id == Id).SingleOrDefault();

在查询结果中,productShowcase.ProductProductShowcasesProductId 属性具有预期值,但 Product 属性为空。

提前致谢。

【问题讨论】:

    标签: linq poco


    【解决方案1】:

    您的Product 属性被标记为虚拟,因此将使用延迟加载。如果您希望在初始查询中填充它,您可以使用 Include(o =&gt; o.Product)(您已经在 ProductProductShowcases 属性上使用了 Include。)

    【讨论】:

    • 是的,但问题是 ProductShowcase.ProductProductShowcases 集合中的 Product 对象为空。所以我需要包含 ProductProductShwcase.Product 但我不知道怎么做。
    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 2014-03-06
    • 2018-06-25
    • 2011-03-01
    • 1970-01-01
    • 2017-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多