使用的软件:
我已经按照this教程创建了一个OData端点:
客户端应用使用OData Client Code Generator从OData端点读取数据。
使用的模型包含具有链接的OrderLine实体的Order实体。 通过向:
发送GET请求,可以从OData端点读取订单实体https://server/Orders
为了阅读Orderline实体,我已经配置了一个Containment。通过向此Uri发送GET请求,可以阅读订单。
https://server/Orders(1)/OrderLines
从我的客户端应用程序,我可以使用OData客户端代码生成器发送这些请求。创建/更新/删除订单实体就像魅力一样。
阅读订单行实体也像魅力一样:
var orderLines = _serviceClient.Orders.ByKey(orderId).OrderLines.Execute();
我创建了用于创建/更新/删除OrderLine实体的OData EndPoint方法,但问题是我找不到使用客户端代码生成器为订单创建新OrderLine实体的方法。我也不知道如何更新或删除OrderLine实体。
有关如何使用客户端代码生成器向包含方法发送POST / PUT / DELETE请求的任何建议吗?
答案 0 :(得分:-2)
如果查看http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v3/calling-an-odata-service-from-a-net-client,您可以看到如何发送这些请求。
如何发布: “要向实体集添加新实体,请调用AddToEntitySet,其中EntitySet是实体集的名称。例如,AddToProducts将新产品添加到Products实体集。生成代理时,WCF数据服务会自动创建这些强类型的AddTo方法。“
如何更新: “要更新实体,请调用UpdateObject方法。
调用SaveChanges时会执行更新。默认情况下,WCF发送HTTP MERGE请求。 PatchOnUpdate选项告诉WCF改为发送HTTP PATCH。
如果要替换整个实体(PUT语义),请指定ReplaceOnUpdate选项。这会导致WCF发送HTTP PUT请求。“
示例:container.SaveChanges(SaveChangesOptions.ReplaceOnUpdate);
如何删除 “要删除实体,请调用DeleteObject”
此页面还介绍了GET 和 PATCH 。