ODATA v4 中的无类型实体补丁操作
Typless Entity Patch operation in ODATA v4
我正在使用 webapi 支持 odata v4 中无类型实体的补丁操作。
到目前为止,我唯一能做的就是 Put 操作,但它需要整个对象都存在。
public HttpResponseMessage Put(IEdmEntityObject entity)
{
return Request.CreateResponse(System.Net.HttpStatusCode.NoContent);
}
每当我将 Put 动词更改为 Patch 时,entity
对象为空。
public HttpResponseMessage Patch(IEdmEntityObject entity)
{
return Request.CreateResponse(System.Net.HttpStatusCode.NoContent);
}
我也尝试用类型替换 IEdmEntityObject
- Delta
、Delta<IEdmEntityObject>
和 dynamic
但我得到以下异常
No MediaTypeFormatter is available to read an object of type 'Object' from content with media type 'application/json'
格博夫
更新,例如 PATCH/PUT 用于单个实体。因此,您的操作应该有一个键来标识应该更新哪个实体。
因此,将您的操作修改为:
public HttpResponseMessage Patch(int key, IEdmEntityObject entity)
{
...
}
应该可以。看我的test project。谢谢
我正在使用 webapi 支持 odata v4 中无类型实体的补丁操作。
到目前为止,我唯一能做的就是 Put 操作,但它需要整个对象都存在。
public HttpResponseMessage Put(IEdmEntityObject entity)
{
return Request.CreateResponse(System.Net.HttpStatusCode.NoContent);
}
每当我将 Put 动词更改为 Patch 时,entity
对象为空。
public HttpResponseMessage Patch(IEdmEntityObject entity)
{
return Request.CreateResponse(System.Net.HttpStatusCode.NoContent);
}
我也尝试用类型替换 IEdmEntityObject
- Delta
、Delta<IEdmEntityObject>
和 dynamic
但我得到以下异常
No MediaTypeFormatter is available to read an object of type 'Object' from content with media type 'application/json'
格博夫
更新,例如 PATCH/PUT 用于单个实体。因此,您的操作应该有一个键来标识应该更新哪个实体。
因此,将您的操作修改为:
public HttpResponseMessage Patch(int key, IEdmEntityObject entity)
{
...
}
应该可以。看我的test project。谢谢