使用DTO的OData Web API补丁请求

5

为了不暴露我的数据库模型,我正在尝试使用DTO等效项来使我的WebAPI端点正常工作。在我的WebAPIConfig中(从Global.asax文件引用),我有以下内容:

builder.EntitySet<ProductDTO>("Products");
builder.EntitySet<Product>("ProductsDB");

产品有一个额外的字段,而ProductDTO没有该字段。

我的补丁请求目前是:

[AcceptVerbs("PATCH", "MERGE")]
public IHttpActionResult Patch([FromODataUri] int key, Delta<ProductDTO> patch)
{

我可以看到,基本上我需要将我的Delta<ProductDTO>转换为Delta<Product>,但是我没有看到Delta类中任何允许我设置其底层EntityType实例的方法。

有人有什么建议吗?

1个回答

0

谢谢您的回复。我能看出这个例子是如何工作的,但似乎无论什么情况下,Delta.GetChangedPropertyNames 都会返回我的 DTO 中所有属性,无论它们是否已更改。您能帮忙吗?这对您来说是如何工作的? - user2363071
我不确定上面的评论是否正确地提到了你,所以我在这里再试一次... - user2363071
我已经意识到Delta.GetChangedPropertyNames包含了我的DTO的所有属性,因为我是在客户端创建对象而没有从服务中提取它并因此跟踪它的上下文。谢谢。 - user2363071

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接