0

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

我有 3 张桌子。

  • 产品
  • 产品选项
  • 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();
}

现在这是不正确的,但它旨在将一个列表返回ProductOptionsProducts.

任何帮助将不胜感激。

4

1 回答 1

0

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

然后,您应该能够执行以下操作:

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

来解决你的问题。

于 2012-05-30T09:14:17.260 回答