ODATA中的补丁是什么?

时间:2014-05-08 10:30:26

标签: asp.net-mvc-4 odata

odata中的补丁是什么用途? 补丁如何工作?

我找到了许多odata的例子,但我不能理解补丁哪种情况我可以使用补丁。 以下是补丁的示例

Partial Updates (PATCH requests)


public HttpResponseMessage PatchProduct(int id, Delta<Product> product)
{
    Product dbProduct = _db.Products.SingleOrDefault(p => p.ID == id);
    if (dbProduct == null)
    {
        throw new HttpResponseException(HttpStatusCode.NotFound);
    }

    product.Patch(dbProduct);
    _db.SaveChanges();

    return Request.CreateResponse(HttpStatusCode.NoContent);
}

1 个答案:

答案 0 :(得分:1)

PUT请求具有替换全部或全部更新的语义,这意味着即使只有一个子集已经更改,您也必须发送所有属性。这是PATCH的用武之地,PATCH允许客户端仅在线路上发送修改后的属性,基本上允许部分更新。

鉴于此,我们只需从数据库中检索产品,然后调用Patch将请求的更改应用于数据库中的实体。完成后,我们调用SaveChanges将更改推送到数据库。