我正在使用C#OData 4客户端,如下所述:
我有一个产品类,它有ID,名称,价格和类别。我想做类似的事情:
var product = new ProductService.Models.Product {
Id = 2,
Price = 4
};
container.AttachTo("Products", product);
container.UpdateObject(product);
这样我只能更新price属性并忽略其余所有属性。我可以看到这不会起作用,因为在创建Product对象时Name和Category被创建为null,因此它们将在生成的请求中作为null发送。
有没有办法在没有先检索我想要更新的对象的情况下执行此操作? (我猜测我需要沿着HttpClient路线走下去。)
答案 0 :(得分:2)
一种解决方法是直接使用HttpClient:
HttpRequestMessage request = new HttpRequestMessage(new HttpMethod("PATCH"), requestUri);
request.Content = new StringContent(@"{{""@odata.type"":""#ProductService.Models.Product"",""Price"":3000}}");
request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
HttpResponseMessage response = new HttpClient.SendAsync(request).Result;