2015-09-15 32 views
2

我有HTML頁面的表格。當我更改字段時,我需要重新保存表中的現有記錄。更新現有的行mysql linq

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

回答

3

不太確定你的實現,但根據上下文你可以做類似的事情。

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的實體。

+0

謝謝,它很好用!) – HUSTLIN

+0

真棒:) @HUSTLIN – JonE