带有DTO的OData Web API修补程序请求

use*_*071 5 odata asp.net-web-api asp.net-web-api2

而不是公开我的数据库模型,我试图让我的WebAPI端点使用DTO等价物.在我从Global.asax文件引用的WebAPIConfig中,我有:

builder.EntitySet<ProductDTO>("Products");
builder.EntitySet<Product>("ProductsDB");
Run Code Online (Sandbox Code Playgroud)

Product有一个ProductDTO没有的额外字段.

我的补丁请求目前是:

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

我可以看到,基本上我需要将我转换Delta<ProductDTO>为a Delta<Product>但我看不到Delta类中允许我设置其基础EntityType实例的任何方法.

有人有建议吗?