Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET核心API-不使用JsonPatchDocument的修补方法_C#_Json_Api_Asp.net Core_Asp.net Web Api - Fatal编程技术网

C# ASP.NET核心API-不使用JsonPatchDocument的修补方法

C# ASP.NET核心API-不使用JsonPatchDocument的修补方法,c#,json,api,asp.net-core,asp.net-web-api,C#,Json,Api,Asp.net Core,Asp.net Web Api,给定以下模型 public class User { public Guid Id { get; set; } public string Name { get; set; } public string Address { get; set; } } 让我们假设以下内容是Json负载 { "id": "b3fe876d-5050-4bd6-af28-c9941d837c18", "Name":

给定以下模型

public class User
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
}
让我们假设以下内容是Json负载

{
    "id": "b3fe876d-5050-4bd6-af28-c9941d837c18",
    "Name": "John",
    "Address": "Germany"
}
我试图通过API端点对此进行修补,比如说我需要使用.net中的JsonPatchDocument更新名称密钥

 {
    "op": "add",
    "path": "/Name",
    "value": "Jack"
  }
上面的工作很好

然而,我们正试图通过API而不是补丁指定的格式发送相同的Json负载来实现同样的目标。下面是这样的

{
    "Name": "Jack"
}
因此它只会更新Json/模型中的特定属性/键


不确定这是否可能,但这是一位朋友提出的,他使用DJango和Python实现了这一点。因此,我们正试图在.Net中实现同样的目标,为什么不可能呢?或者你认为哪里有问题?看起来很容易。但是你可能会看到一些问题,因为在你的情况下,我们不知道某些领域的具体情况,你应该给它们命名。不,我们没有任何领域的具体情况或复杂情况,它就像它看起来一样简单。但我不知道该怎么做。如果您能分享您的方法,我将不胜感激。在端点中,验证有效负载中的部分(用户)对象。当您有自己的模型时(您应该知道,因为该模型不应该有或不允许有id,id属于路由),您可以使用该模型上的属性来实现此目的。然后从您的存储库中检索现有模型复制您已获得的属性,验证合并的模型,然后通过存储库将其写回。这是有道理的,如果有一个包含Json字符串内容的字段,并且该字段也需要修补。因此,该字段位于正在修补的同一实体内,但字段本身包含Json字符串,并且与父实体相同,我们只需要更新字段内Json字符串的一小部分!我假设你也有一个关于这个领域的模型,同样适用于如何修补周围的模型。为什么不可能呢?或者你认为哪里有问题?看起来很容易。但是你可能会看到一些问题,因为在你的情况下,我们不知道某些领域的具体情况,你应该给它们命名。不,我们没有任何领域的具体情况或复杂情况,它就像它看起来一样简单。但我不知道该怎么做。如果您能分享您的方法,我将不胜感激。在端点中,验证有效负载中的部分(用户)对象。当您有自己的模型时(您应该知道,因为该模型不应该有或不允许有id,id属于路由),您可以使用该模型上的属性来实现此目的。然后从您的存储库中检索现有模型复制您已获得的属性,验证合并的模型,然后通过存储库将其写回。这是有道理的,如果有一个包含Json字符串内容的字段,并且该字段也需要修补。因此,该字段位于正在修补的同一实体内,但字段本身包含Json字符串,并且与父实体相同,我们只需要更新字段内Json字符串的一小部分!我假设你也有一个这个领域的模型,同样适用于如何修补周围的模型。