更新 Lambda 表达式中的语句
本文关键字:语句 表达式 Lambda 更新 | 更新日期: 2023-09-27 18:33:14
我想将以下内容转换为lambda表达式:
Update [ActivityTask] Set GroupID = "1" Where ActivityID = aid AND TaskID = tid ;
GroupID = (一个取自其他地方的整数,不是硬编码,我把 1 作为考官)
我真的陷入了如何继续这个的困境......我得到了插入方法:
public void Insert(ModelSQL.ActivityTask act)
{
context.ActivityTasks.AddObject(act);
}
想知道它是否与顶部相同,所以我尝试了这个:
public void Update(int gid , int aid , int tid)
{
Update<ActivityTask>( new { x => x.GroupID == gid }).Where(x => x.activityID == aid && x.taskID == tid);
}
但它给出了错误"无法将lambda表达式分配给匿名",我也不能使用3个参数(3个整数)。
If context。活动任务是列表,然后
public void Update(int gid , int aid , int tid)
{
List<ActivityTask> found = context.ActivityTasks.FindAll(item => item.activityID == aid && item.taskID == tid);
found.ForEach(item => { item.GroupID = gid; });
}
有关实体框架多个更新,请参阅实体框架扩展(多个实体更新) 它是开源的。这允许使用 lambda 表达式执行更新操作。
using System.EntityFramework.Extensions.ObjectQueryExtensions; //Include this package
{
....
public void Update(int gid , int aid , int tid)
{
context.ActivityTasks.Update(t => new ActivityTask() { GroupID = gid },
t => t.activityID == aid && t.taskID == tid);
}
....
}