使用 Id 列表搜索实体框架表

the*_*per 0 c# linq entity-framework linq-to-sql

我有一个返回实体框架表的函数,但我只需要通过另一个实体列表传入的某些 ID。我不确定这样做的正确方法,我尝试了以下方法,但列表导致了问题......

public IEnumerable<Payment> PaymentsForContact(List<User> user) => 
        _context.Payments.Where(p=> p.Id == user.Id;
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

Hol*_*ger 6

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

Payments.Join(Users, p=>p.UserID, u =>u.UserID, (p,u)=>p)
Run Code Online (Sandbox Code Playgroud)

返回具有用户的付款。

如果您已经有一个 ID 列表,则可以使用 contains

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

但这仅推荐用于小 id 列表(小于 100),因为所有 id 都成为查询字符串的一部分。