如何查询'In clause'在Linq中收集collection后

本文关键字:Linq collection clause 查询 何查询 In | 更新日期: 2023-09-27 18:05:01

我有一个id列表,我想在嵌套集合上触发'In子句'查询。我该怎么做呢?更详细地说,我有两个表

表:A表:B

这两个表都有各自的主键,它们使用另一个"表C"来存储它们的映射细节。表:C表C包含两列,它们分别是表A和表B的主键。现在我有表A的id,并从B中获得所有记录,这些记录与使用表c的A相关联。我想在Linq中像Sql一样触发一个"查询",但不能在表c的集合上触发。

我知道在linq中我们也有where从句。但是它没有显示在它的列表中。

我的查询是这样的。

       Context.B.Where(item=>item.C.WhereIn(item1=>Item1.AID==aid));

我想要类似的查询,但与'C'它不显示其中子句以及我应该做什么任何建议。

如何查询'In clause'在Linq中收集collection后

试试这个:

// Select the ids of the table B that are associated with ids in aIds.
var bIds = Context.C.Where(x=>aIds.Contains(x.aId)).Select(x=>x.bId);
// Get the record of table B, which their ids are in bIds
var result = Context.B.Where(x=>bIds.Contains(x.Id));