我有一个看起来像这样的表:
| FruitID | BasketID | FruitType |
| 23 | 2 | 1 |
| 24 | 5 | 1 |
| 25 | 2 | 1 |
| 26 | 5 | 2 |
我正在编写一个查询,其中我正在传递BasketIDs
列表,我想要找回一个新的BasketIDs
列表,其中只包含FruitID
的所有内容FruitTypes
等于1.例如,如果我传入BasketIDs 2和5,我只返回2,因为第5篮子的FruitID 26是FruitType 2。
这就是我所拥有的:
var TheQuery = (from f in MyDC.TableFruits
where TheListOfBasketIDs.Contains(f.BasketID) &&
// need help here
select f.BasketID).ToList();
感谢您就如何编写过滤器提出建议。
答案 0 :(得分:5)
按BasketID
分组水果,以验证来自购物篮的所有水果的FruitType
等于1
:
var TheQuery = (from f in MyDC.TableFruits
group f by f.BasketID into g
where TheListOfBasketIDs.Contains(g.Key) &&
g.All(x => x.FruitType == 1)
select g.Key).ToList();