使用实体框架,试图为这个典型用例的查询提供一些帮助(更喜欢基于方法的语法):
有一个产品表,如:
OWNERID
的productId
ProductCategoryId
productInfo等
有一个典型的产品类别映射表,如:
somePrimaryKey
OWNERID
的categoryId
的productId
中将sortOrder
此设置允许一个产品属于多个类别,并且在每个类别中都有自己的排序顺序。此外,我们有" ownerId"在所有表中,因为每个所有者只能看到自己的数据。
现在,给定了categoriestoryId和ownerId,我们需要找到此类别的所有产品,按sortOrder排序。
我们应该怎么写这个?
非常感谢!
答案 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是您注入的数据并保持排序。