针对典型产品的C#EF查询 - 类别关系?

时间:2015-07-31 05:51:01

标签: entity-framework join

使用实体框架,试图为这个典型用例的查询提供一些帮助(更喜欢基于方法的语法):

有一个产品表,如:

  • OWNERID

  • 的productId

  • ProductCategoryId

  • productInfo等

有一个典型的产品类别映射表,如:

  • somePrimaryKey

  • OWNERID

  • 的categoryId

  • 的productId

  • 中将sortOrder

此设置允许一个产品属于多个类别,并且在每个类别中都有自己的排序顺序。此外,我们有" ownerId"在所有表中,因为每个所有者只能看到自己的数据。

现在,给定了categoriestoryId和ownerId,我们需要找到此类别的所有产品,按sortOrder排序。

我们应该怎么写这个?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用这些内容:

// Instanciate your context.
// Do it the way you've already done it, it's here only for example.
DbContext bd = new DbContext(); 

// The query :
List<Products> listProducts = new List<Products>();
listProducts = db.Products.Where(p => (db.ProductsCategories.Where(pc => pc.CategoryID == categoryID && pc.OwnerID == ownerID).Select(pc => pc.ProductID).OrderBy(pr => pr.sortOrder).ToList()).Contains(p.ProductID)).ToList();

这种方式使用产品类别映射(categorieID和ownerID是您注入的数据并保持排序。