我有一个具有以下结构的数据库:
分类
[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();
这为我提供了类别,但没有对已删除/隐藏的产品进行过滤
答案 0 :(得分:2)
而不是
.Where(t => t.product.Count() > 0)
使用
.Where(t => t.product.Any(u => !u.IsHidden && !u.IsDeleted))