如何将此查询转换为 LINQ

How do I convert this query into LINQ

如何将此查询转换为 LINQ?

这里 employeeList 是一个员工列表(模型),idList 是一个 ID 列表(整数)。

Update employeeList 
Set employeeList.CaseNumber = '100' 
where employeeList.id in idList

无法创建将产生给定 UPDATE 查询的 LINQ 查询。 唯一的解决方案是遍历项目集合并将 CaseNumber 设置为 100。

foreach(var item in context.employeeList.Where(i => idList.Contains(i.id))
{
    item.CaseNumber = "100";
}
context.SaveChanges();

但这将导致 n 查询发送到数据库。 更好的解决方案是直接对数据库执行查询。

context.Database.SqlQuery("UPDATE ... SET ... WHERE");

另一种可能性是使用 StoredProcedures 然后映射到 ORM.

如果我理解正确的话,你只需要一个 LINQ 替代你写的东西。 如果是这种情况,请尝试提供的代码

employeeList.Where(x => idList.Contains(x.id)).ToList().ForEach(i => i.CaseNumber = 100);