使用 ID 列表搜索 Entity Framework table

Searching Entity Framework table with a list of Id's

我有一个 return 是 entity framework table 的函数,但我只需要通过另一个实体列表传入的某些 ID。我不确定执行此操作的正确方法,我尝试了以下方法,但列表导致了问题...

public IEnumerable<Payment> PaymentsForContact(List<User> user) => 
        _context.Payments.Where(p=> p.Id == user.Id;

有没有一种方法可以遍历用户对象以仅 return _context.Payments 中的用户 ID?

提前致谢

要遍历某些东西,即在两个表中,您可以使用连接

Payments.Join(Users, p=>p.UserID, u =>u.UserID, (p,u)=>p)

returns 个付款,有一个用户。

如果您已有 ID 列表,则可以使用 Contains

var list = new List<int> { 1,2,3,4};
Payments.Where( p => list.Contains(p.UserId));

但这只推荐用于小型 ID 列表(少于 100),因为所有 ID 都会成为您查询字符串的一部分。

我认为这段代码可以满足您的需求:

_context.Payments.Where(p=> user.Any(u=> u.Id == p.Id));

对于每笔付款,您必须检查用户列表是否包含该付款