Linq关系连接

时间:2012-05-30 08:46:19

标签: c# linq linq-to-entities

我正在使用实体框架,并且需要一种使用linq创建集合的方法。我会表明我的意思。

我有3张桌子。

  • 产品
  • ProductOptions
  • Product_ProductOption_Mappings

我正在使用Product_ProductOption_Mappings表在ProductProductOptions之间创建多对多关系。鉴于特定产品,我想提供一系列产品选项。

using((Model.Entities context = new Model.Entities())
{
    var options = context.Products
            .Where(p => p.ID == 1)
            .First()
            .Product_ProductOption_Mappings.ProductOptions.ToList();
}

现在这不正确,但它的目的是返回ProductOptions的“{1}}列表”。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您的多对多表仅包含管理关系所需的两个ID,则EF应支持将该链接表隐藏在概念模型中。基本上,您应该在概念模型中拥有Product和ProductOption实体,它们之间具有多对多关联。在下面的示例中,我已将产品“选项”中包含的导航属性命名为。

然后你应该能够做到这样的事情:

using((Model.Entities context = new Model.Entities())
{
    var options = context.Products
        .Single(p => p.ID == 1)
        .Options
        .ToList();
}

解决您的问题。