linq-to-sql .All()或.Any()查找符合条件的所有项目

fre*_*hie 2 c# linq linq-to-sql

我有一个看起来像这样的表:

| FruitID | BasketID | FruitType |
|   23    |    2     |    1      |
|   24    |    5     |    1      |  
|   25    |    2     |    1      |
|   26    |    5     |    2      |
Run Code Online (Sandbox Code Playgroud)

我正在写一个查询,我正在传递一个列表,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();
Run Code Online (Sandbox Code Playgroud)

感谢您关于如何编写过滤器的建议.

Ser*_*kiy 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();
Run Code Online (Sandbox Code Playgroud)