更新现有行mysql linq

本文关键字:mysql linq 更新 | 更新日期: 2023-09-27 18:12:57

我有一个带有表的html页面。当我更改字段时,我需要重新保存表中的现有记录。

public int SaveTask(TimesheetListModel task, int userId)
{
    var worklog = new tblWorkLog();
    if (task != null)
    {
        worklog.AccountId = userId;     
        worklog.WorkDate = task.Date;
        worklog.Note = task.Note;       
        worklog.TaskTitle = task.Task;
        DataContext.tblWorkLogs.InsertOnSubmit(worklog);
        DataContext.SubmitChanges(ConflictMode.FailOnFirstConflict);
    }
    return worklog.WorkItemId;
}

此函数将数据保存到表tblWorklogs并返回记录的id。但是当我更新记录时,我已经有了记录的id,我需要在表和更新字段中找到这个记录。如何做到这一点?我写了begin function:

public bool UpdateTask(TimesheetListModel task)
{
    /* If update succefull must return true */
    return false;
}

更新现有行mysql linq

对你的实现不太确定,但根据上下文你可以这样做。

public bool UpdateTask(TimesheetListModel task)
{
    var entity = DataContext.tblWorkLogs.FirstOrDefault(twl => twl.Id == task.Id);
    if (entity != null)
    {
      entity.AccountId = userId;     
      entity.WorkDate = task.Date;
      entity.Note = task.Note;       
      entity.TaskTitle = task.Task;
      DataContext.SubmitChanges();
      return true;
    }
    return false;
}

背后的逻辑是:

  • 尝试从数据库检索实体。
  • 如果存在,按需要编辑属性/属性
  • 保存更改

这一切都取决于您是否在跟踪实体,否则您必须Attach实体