影片講解
首先要使用PATCH功能,我們必須額外去下載套件。
- Microsoft.AspNetCore.JsonPatch
- Microsoft.AspNetCore.Mvc.NewtonsoftJson
那以下是程式碼
[HttpPatch("{id}")]
public void Patch(Guid id, [FromBody] JsonPatchDocument value)
{
var update = (from a in _todoContext.TodoLists
where a.TodoId == id
select a).SingleOrDefault();
if (update != null)
{
update.UpdateTime = DateTime.Now;
update.UpdateEmployeeId = Guid.Parse("00000000-0000-0000-0000-000000000001");
value.ApplyTo(update);
_todoContext.SaveChanges();
}
}
其中接受值的JsonPatchDocument
是Microsoft.AspNetCore.JsonPatch的類別,用來處理局部更新的接收格式。
Microsoft.AspNetCore.Mvc.NewtonsoftJson
則是接收後必要的轉換用的。那我們接著要到Startup.cs
中設定一些參數才能正常執行。
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers()
.AddNewtonsoftJson();
}
以上增加AddNewtonsoftJson()
。
昨完這些設定之後,我們就可以來使用局部更新的功能。要使用局部更新的功能,是有一定的格式,以下是取代時的用法。
[
{
"op": "replace",
"path": "/name",
"value": "去上課"
}
]
接著我們就送出,就可以發現,我們成功的只更新了name的欄位。
那因為其實我並沒有在用Patch,所以只能簡單的介紹一下基本用法,如果還想知道更多,可以參考以下的官方文件。
以上就是這篇Patch局部更新資料的簡單示範,想看詳細操作的話可以看影片。
新手分享學習成果,若有錯誤,煩請告知修正,感謝🙏
範例檔:下載