用于Web API的ASP.NET MVC Core控制器PATCH方法

问题描述:

给定一个数据库表Person,其中包含3个colums Id,Firstname和Lastname。用于Web API的ASP.NET MVC Core控制器PATCH方法

ASP.NET Core Web API MVC控制器方法PATCH(仅修改姓氏)如何看起来像使用真正的DbContext时的样子。

我不知道如何实现它(并且找不到教程),所以我结束了下面的代码,但不知道如何处理。

[HttpPatch("{id}")] 
public void Patch(int id, [FromBody]Person value) 
{ 
    //is this the correct method signature? 
    // what to do with dbContext in here? 
} 
+0

你能分享你的代码吗? – Sampath

+0

我在没有线索的情况下实现了该代码,因为我无法找到关于该主题的教程。所以分享我的代码是没用的,因为我不知道如何写代码。我编辑了一个删除dbContext.SaveChanges部分的问题。欲了解更多信息,请看看:http://stackoverflow.com/questions/39514203/problems-implementing-a-simple-asp-net-core-web-api-service-personexample – monty

+1

如果你需要从SO社区,那么你必须花一些时间处理你的一系列问题,并根据相关的顺序逐一确定这些项目。然后把这些东西一次一个地放在一起。那个时候你会有一个解决方案。否则这将是另一个问题没有答案。很确定。 – Sampath

因此,相应于REST准则的PATCH请求应该提供部分修改资源的能力,只用请求中给出的属性和值。如果您对如何在数据库中部分更改项目感到困惑 - 有一个简单的答案。只更新那些受PATCH请求影响的DB字段:)。

NuGet中提供了一些库,可以帮助您在API中实现e PATCH。例如,查看JsonPatch。从控制器到数据库有一个很好的例子。

UPD: Another one library

+0

非常感谢。 – monty

如果你已经实现了客户端逻辑,你可以使用SimplePatch如何在链接中使用)。

声明:我是该项目的作者。