我遇到的问题是我们的后端使用OData-“like”-Processor,它具有一些特殊功能。它面向OData_2.0 所以问题是: 此类以下请求的最类似OData的方法是什么
我们的后端数据模型没有单属性键。但如果可能的话,建议使用OData-Like。
首先:我需要通过一个OData请求删除多个对象。我的第一个想法是使用过滤器来定义应删除哪些对象。但我',不确定这是否是正确的方法。
例如:我想删除价格大于10.00
的所有商品http://.../<oDataServiceX>/Item?$filter=ItemPrice gt 10.00
第二:当我想要删除一个单个键属性无法识别的对象时。如何在经典的OData-Delete-Request-Syntax中定义它。
以下是OData吗?
http://.../<oDataServiceX>/Item(1,54,2) //3 Attributes which define the key for the Item
或者我应该再次进行过滤? (如果过滤器是一种正确的方法)。
http://.../<oDataServiceX>/Item?$filter=keyAttr1 eq 1 and keyAttr2 eq 54 and keyAttr 3 eq 2
答案 0 :(得分:0)
您无法在单个OData查询中删除多个条目,您首先需要检索其密钥,然后发送多个删除请求。有两种方法可以改善这一过程:
希望这有帮助。
答案 1 :(得分:0)
Odata v4支持格式DELETE / entity(key1 ='',key2 ='')等等。
但是,对于oData v2,一个选项可能是使用请求主体传递一些数据。 DELETE / entity,包含正文中的数据。 该文档声明该约定是按键删除实体。但是,当我们不得不通过多个键删除odata v2服务时,这就是采用的方法。此外,在使用oData v2库实现此功能时,我们必须添加路由约定以支持Delete而不使用密钥。