繁体   English   中英

更新 Lambda 表达式中的语句

[英]Update statement in Lambda expression

我想将以下内容转换为 lambda 表达式:

Update [ActivityTask] Set GroupID = "1" Where ActivityID = aid AND TaskID = tid ;

GroupID =(取自其他地方的 int,不是硬编码的,我将其作为 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 个整数)..

如果 context.ActivityTasks 是 List 那么

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);     
   }
  ....
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM