如何将此查询转换为LINQ?
此处employeeList
是员工列表(模型),idList
列有ids(int)。
Update employeeList
Set employeeList.CaseNumber = '100'
where employeeList.id in idList
答案 0 :(得分:1)
无法创建将导致给定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
。
答案 1 :(得分:-1)
如果我理解得恰到好处,你只需要LINQ替代你所写的内容。 如果是这种情况,请尝试提供的代码
employeeList.Where(x => idList.Contains(x.id))。ToList()。ForEach(i => i.CaseNumber = 100);