我有一份基于类别产品的价格清单。我需要确保子类别中的产品价格不会显示在此列表中,但它们是。子类别和类别在数据库的同一个表中,唯一的区别是子类别将有一个父ID来表明它是一个孩子。
我有两个LINQ语句,我需要以某种方式联系在一起,我无法做到正确。也许我没有尝试以正确的方式做到这一点,但我对LINQ还不是很有经验,而且我还没有能够在网上找到很多帮助。
要明确的是,这不是为了删除重复项,我不会遇到这个问题,我只需要阻止某些结果出现。
var subCategories = siteCategory.SiteSubCategories.Where(x => x.Active);
string lowestPrice = siteCategory.SiteProducts.Min(x => x.Price).ToString();
我试图做以下事情
string lowestPrice = siteCategory.SiteProducts.Where(!subCategories).Min(x => x.Price).ToString();
但是我收到一条错误Operator '!' cannot be applied to operand of type 'IEnumerable'
我还试过了linq语句的多个其他组合,列出太多,所以我只列出了我尝试过的对我来说最有意义的那个。
有人可以帮我弄清楚我做错了什么吗?提前谢谢。
答案 0 :(得分:0)
你应该在.Where使用lambda。代码的那部分应该像
siteCategory.SiteProducts
.Where(product => !subCategories.contains(product.Category))
.Min(x => x.Price).ToString()
以适当的方式获取产品类别。我猜到product.Category
,你需要自己更新那篇文章。
答案 1 :(得分:0)
我不知道您的数据建模方式的详细信息,但假设Product
具有Category
属性。并且Category
具有ParentId
可空属性,您可以这样做:
siteProducts
.Where(product => product.Category.ParentId == null)
.Min(product => product.Price)
.ToString();