如何将此查询转换为 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);
如何将此查询转换为 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);