我正在使用asp.net核心webAPi和EF核心,并希望实现“更新”操作(部分编辑实体)。
我搜索了正确的处理方式,发现应该使用jsonPatch。问题是我仅通过我的API公开DTO,并且如果我像这样使用jsonPatch:

public AccountDto Patch(int id, [FromBody]JsonPatchDocument<AccountDto> patch)
那么我需要在DTO上应用补丁,而不能在没有创建新实体的情况下将其应用在模型实体上。
我也读过有关Odata.Delta的文章,但它仍然无法在asp.net内核上运行,而且-我认为它没有内置的解决方案可用于dto(我发现this example可以在将Odata for core用作内核时提供帮助。可用的)
因此,就目前而言-我应该使用POST并将DTO与查询中已更改属性的列表一起发送(如我所见的here),还是-有更优雅的解决方案?
谢谢!

最佳答案

现在我看到使用autoMapper我可以做

CreateMap<JsonPatchDocument<AccountDTO>, JsonPatchDocument<Account>>();
        CreateMap<Operation<AccountDTO>, Operation<Account>>();

它就像一个魅力:)

10-02 01:42