【问题标题】:ASP.NET MVC Core controller PATCH method for a Web APIWeb API 的 ASP.NET MVC Core 控制器 PATCH 方法
【发布时间】:2017-08-02 17:58:10
【问题描述】:

给定一个数据库表 Person 包含 3 列 Id、Firstname 和 Lastname。

使用真实 DbContext 时,ASP.NET Core Web API MVC 控制器方法 PATCH(仅修改姓氏)的外观如何。

我根本不知道如何实现它(也找不到关于它的教程),所以我最终得到了下面的代码,但不知道如何继续。

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

【问题讨论】:

  • 你能分享你的代码吗?
  • 我在没有线索的情况下实现了该代码,因为我无法找到有关该主题的教程。所以分享我的代码是没有用的,因为我根本不知道怎么写。我编辑问题并删除 dbContext.SaveChanges 部分。更多信息请查看:stackoverflow.com/questions/39514203/…
  • 如果您需要来自 SO 社区的反馈,那么您必须花一些时间处理您的一系列问题,并根据相关顺序逐个确定项目。然后将这些东西一次一个.那时你会有一个解决方案。否则这将是另一个没有答案的问题。很确定。
  • 从上一个问题中我提取了一个 sn-p。我不知道如何实现。所以我问我应该如何实现它。我不能给出我不知道的代码。在上一个问题中,建议将其拆分为多个问题。这个问题是多个问题中的第一个。随时给我更多提示,我可以编辑这个问题,以满足您的需求。
  • @Sampath:我在问题开始的地方添加了代码。不幸的是,这就是我所拥有的。

标签: asp.net-mvc entity-framework rest asp.net-web-api


【解决方案1】:

因此,根据 REST 指南,PATCH 请求应该能够仅使用请求中给出的属性和值来部分修改资源。如果您对如何在数据库上投影部分更改感到困惑 - 有一个简单的答案。仅更新那些在 PATCH 请求中受影响的 DB 字段:)。

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

更新: Another one library

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-12
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 2020-10-31
      相关资源
      最近更新 更多