【发布时间】:2014-08-04 13:42:55
【问题描述】:
我正在使用此处描述的 C# OData 4 客户端:
我有一个产品类别,它有一个 ID、名称、价格和类别。我想做类似的事情:
var product = new ProductService.Models.Product {
Id = 2,
Price = 4
};
container.AttachTo("Products", product);
container.UpdateObject(product);
这样我就可以只更新 price 属性而忽略其余所有属性。我可以看到这不起作用,因为 Name 和 Category 在创建 Product 对象时被创建为 null,因此它们将在生成的请求中作为 null 发送。
有没有办法在不首先检索我要更新的对象的情况下做到这一点? (我猜我需要走 HttpClient 路线)。
【问题讨论】:
-
只是好奇你为什么不想先检索对象?
-
@QianLi。当完全相同的查询将在 PATCH 方法本身中运行时,这是对数据库的另一次访问。我的应用程序将是 MVC 应用程序,因此将是无状态的,因此如果我正在编辑记录,它不会将干净的版本保留在内存中。做类似上面的事情也会更简单。你能想出在这种情况下首先检索对象的充分理由吗?
-
是合并属性(PATCH)还是替换实体(PUT)?
标签: c# odata asp.net-web-api2