无法使Linq语法工作

时间:2016-01-21 10:18:46

标签: c# linq

我有,对其他人来说可能只是一个简单的逻辑,但是我已经绕圈子而且无法解决这个问题。

我正在使用实体框架,但这并不重要,因为我需要建议的Linq部分。

我有一个名为Category和另一个名为Offer。这种关系是一个报价可以有一个类别,当然一个类别可以有很多报价。

每个优惠都有2个bool列: IsActive IsExpired

我尝试只选择至少有1个有效优惠的类别( IsActive !IsExpired

虽然我使用的是存储库,但它基本上是相同的,其中r是Categories表。

        return r.Find()
            .Any(x =>  x.Offers.Where(y => y.IsActive == true));

这是一个很大的语法错误。救命啊!

2 个答案:

答案 0 :(得分:7)

我认为你混淆了whereany。尝试:

return r.Find().Where(x => x.Offers.Any(y => y.IsActive));

答案 1 :(得分:1)

尝试在任何地方嵌套。

return r.Find()
       .Where(x => x.Offers.Any(y => y.IsActive));