ASP.NET Core Web API 入門教學 - 使用PUT更新資料


Posted by TalllKai on 2021-05-27

影片講解:


恭喜你支撐到這篇也恭喜自己寫到這邊了~~~

接下來就要正式進入更新資料的教學

首先跟新增資料一樣,我們會傳個更新的內容進來

// PUT api/<TodoController>/5
[HttpPut("{id}")]
public void Put(Guid id, [FromBody] TodoList value)
{
}

路由的部分我們會帶上要更新的id,這是restful的規範,當然你不要也行。

接著我們會接收到兩個參數,一個是路由過來的Guid id一個是使用者傳來要更新的資料[FromBody] TodoList value,這邊的FromBody可以省略。

那這邊可以用一個簡單的函式做更新

[HttpPut("{id}")]
public void Put(Guid id, [FromBody] TodoList value)
{
    _todoContext.TodoLists.Update(value);
    _todoContext.SaveChanges();
}

但通常這不會是符合我們的需求,所以我們要用另一種方式做更新。

var update = (from a in _todoContext.TodoLists
              where a.TodoId == id
              select a).SingleOrDefault();

先撈出你要更新的那一筆

if (update != null)
{
    update.InsertTime = DateTime.Now;
    update.UpdateTime = DateTime.Now;
    update.InsertEmployeeId = Guid.Parse("00000000-0000-0000-0000-000000000001");
    update.UpdateEmployeeId = Guid.Parse("00000000-0000-0000-0000-000000000001");

    update.Name = value.Name;
    update.Orders = value.Orders;
    update.Enable = value.Enable;
    _todoContext.SaveChanges();
}

接著如果撈出來為空我們就不做任何動作,如果有資料我們就進行更新動作。

在上面程式碼中,我們一開始更新的部分是系統給值得部分,下面update.Name = value.Name則是用使用者傳來的資料進行更新,最後再進行_todoContext.SaveChanges(),資料就會更新上去了。

最後完整的程式碼如下

[HttpPut("{id}")]
public void Put(Guid id, [FromBody] TodoList value)
{
    //_todoContext.TodoLists.Update(value);
    //_todoContext.SaveChanges();

    // var update = _todoContext.TodoLists.Find(id);
    var update = (from a in _todoContext.TodoLists
                  where a.TodoId == id
                  select a).SingleOrDefault();

    if (update != null)
    {
        update.InsertTime = DateTime.Now;
        update.UpdateTime = DateTime.Now;
        update.InsertEmployeeId = Guid.Parse("00000000-0000-0000-0000-000000000001");
        update.UpdateEmployeeId = Guid.Parse("00000000-0000-0000-0000-000000000001");

        update.Name = value.Name;
        update.Orders = value.Orders;
        update.Enable = value.Enable;
        _todoContext.SaveChanges();
    }
}

以上就是這篇更新資料的簡單示範,想看詳細操作的話可以看影片。

範例檔案:下載

新手分享學習成果,若有錯誤,煩請告知修正,感謝🙏


#ASP.NET Core #Web API #.NET 5







Related Posts

Git 介紹 + 基本指令

Git 介紹 + 基本指令

【瀏覽器資料存取】cookies、localStorage、sessionStorage

【瀏覽器資料存取】cookies、localStorage、sessionStorage

Day06:從經典案例看 bytecode

Day06:從經典案例看 bytecode


Comments