LINQ Where 查询对象列表

LINQ Where query with object list

我有一个带有 属性 ID 的对象列表 ListA,我必须在具有列 ID 的 table 中进行查询,并找到 ID 相同的行。我如何才能通过单个查询而不是 listA 的 foreach 循环实现这一目标?

感谢您的宝贵时间

foreach(var object in listA)
{
  context.Table.Where(x => x.id == object.Id)....
}

您似乎想要 return table 中具有相同 ID 的对象列表中包含的 ID 的所有行。以下将实现这一点。我可以修改我的答案以满足您的需要。如果您正在寻找稍微不同的东西,请告诉我。

void Main()
{
    
    var listA = new List<A> { new A { Id = 1 }, new A { Id = 4 } };
    
    var results = context.Table
        .Where(t => listA.Select(l => l.Id).Contains(t.Id))
}
    
public class A
{
    public int Id { get; set; }
}