更新现有行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;
}
对你的实现不太确定,但根据上下文你可以这样做。
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
实体