2

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

| FruitID | BasketID | FruitType |
|   23    |    2     |    1      |
|   24    |    5     |    1      |  
|   25    |    2     |    1      |
|   26    |    5     |    2      |

我正在编写一个查询,我正在传递一个列表,BasketIDs并且我想返回一个新列表,BasketIDs该列表仅包含FruitID所有FruitTypes都等于 1 的篮子。例如,如果我传入 BasketID 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();

感谢您对如何编写过滤器的建议。

4

1 回答 1

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();
于 2013-02-05T06:26:56.510 回答