通过另一个列表/数组过滤Linq子集合

Rub*_*ury 2 linq entity-framework filter

当我尝试根据一个简单的值过滤一个子集合时,可以通过执行以下操作轻松实现:

db.Table.Where(a => a.SubTable.Any(b => b.SubTableId == 1));
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试根据与其对应的值列表来过滤相同的子集合时,我一直都在出错。

List<long> listOfIDs = new List<long> { 1, 2, 3 };
db.Table.Where(a => listOfIDs.Any(a.SubTable.Select(b => b.SubTableId));
Run Code Online (Sandbox Code Playgroud)

我搜索了很多方法,但我仍在启动EF。我收到的错误是无法从System.Collections.Generic转换为Func。

有人感冒请帮我告诉我我在做什么错?我只想使用数组,列表等来过滤集合...

问候,鲁本斯

Sam*_*ath 5

您可以尝试如下所示。

db.Table.Where(a => a.SubTable.Any(x=> listOfIDs.Contains(x.SubTableId)));
Run Code Online (Sandbox Code Playgroud)