仅列出包含产品的类别

时间:2015-06-15 11:12:25

标签: c# asp.net-mvc entity-framework

我有一个具有以下结构的数据库:

分类
 [PK] CATID
 CatName

ProductTypes
 [PK] TYPEID
 类型名

制造商
 ManufacturerID
 名称

产品
 [PK]的ProdID
 标题
 TYPEID
 ManufacturerID
 IsDeleted (bool)
 IsHidden (布尔)

ProductTypes与我的应用程序“无关”,但是对于导出到另一个系统是必需的。

我希望获得一个包含类别的嵌套列表,并在Products.IsDeleted和Products.IsHidden上过滤产品 喜欢这个

第1类 Product.ProdID - Product.Title,Manufacturer.Name ...

第2类 Product.ProdID - Product.Title,Manufacturer.Name ...

如何使用EF

以最简单的方式执行此操作
var catList = db.TypeIDs.Where(t => t.product.Count() > 0).Select(x => x.TypeCat).Distinct().ToList();   

这为我提供了类别,但没有对已删除/隐藏的产品进行过滤

1 个答案:

答案 0 :(得分:2)

而不是

.Where(t => t.product.Count() > 0)

使用

.Where(t => t.product.Any(u => !u.IsHidden && !u.IsDeleted))