我有,对其他人来说可能只是一个简单的逻辑,但是我已经绕圈子而且无法解决这个问题。
我正在使用实体框架,但这并不重要,因为我需要建议的Linq部分。
我有一个名为Category和另一个名为Offer。这种关系是一个报价可以有一个类别,当然一个类别可以有很多报价。
每个优惠都有2个bool列: IsActive 和 IsExpired 。
我尝试只选择至少有1个有效优惠的类别( IsActive 和!IsExpired )
虽然我使用的是存储库,但它基本上是相同的,其中r是Categories表。
return r.Find()
.Any(x => x.Offers.Where(y => y.IsActive == true));
这是一个很大的语法错误。救命啊!
答案 0 :(得分:7)
我认为你混淆了where
和any
。尝试:
return r.Find().Where(x => x.Offers.Any(y => y.IsActive));
答案 1 :(得分:1)
尝试在任何地方嵌套。
return r.Find()
.Where(x => x.Offers.Any(y => y.IsActive));