【问题标题】:Update existing row mysql linq更新现有行 mysql linq
【发布时间】:2015-12-11 10:30:23
【问题描述】:

我有带有表格的 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,我需要在表中找到这条记录并更新字段。这个怎么做?我写了开始函数:

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

【问题讨论】:

    标签: c# mysql asp.net-mvc linq


    【解决方案1】:

    不太确定你的实现,但根据上下文你可以做类似的事情。

    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实体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 2021-06-27
      • 2016-07-20
      • 1970-01-01
      相关资源
      最近更新 更多