Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带过滤器的OData删除_Odata - Fatal编程技术网

带过滤器的OData删除

带过滤器的OData删除,odata,Odata,我有一个问题,我们的后端使用OData“like”处理器,它有一些特殊的功能。它的方向是OData_2.0 因此,问题是: 对于以下此类请求,最类似OData的方法是什么 我们的后端数据模型没有单属性键。但如果可能的话,建议使用类似OData的产品 第一:我需要通过一个OData请求删除几个对象。我的第一个想法是使用过滤器来定义应该删除哪些对象。但我不确定这是否是正确的方法 例如:我想删除所有价格大于10.00的项目 http://.../<oDataServiceX>/Item?$

我有一个问题,我们的后端使用OData“like”处理器,它有一些特殊的功能。它的方向是OData_2.0 因此,问题是: 对于以下此类请求,最类似OData的方法是什么

我们的后端数据模型没有单属性键。但如果可能的话,建议使用类似OData的产品

第一:我需要通过一个OData请求删除几个对象。我的第一个想法是使用过滤器来定义应该删除哪些对象。但我不确定这是否是正确的方法

例如:我想删除所有价格大于10.00的项目

http://.../<oDataServiceX>/Item?$filter=ItemPrice gt 10.00
http://...//Item?$filter=ItemPrice gt 10.00
第二:当我想删除一个单键属性无法识别的对象时。如何在经典的OData删除请求语法中定义它

下面的小田是什么样的

http://.../<oDataServiceX>/Item(1,54,2)  //3 Attributes which define the key for the Item
http://...//Item(1,54,2)//3个定义项的键的属性
或者我应该再做一次过滤?(如果过滤器是正确的方法)

http://...//Item?$filter=keyAttr1等式1和keyAttr2等式54以及keyAttr 3等式2

您不能在一个OData查询中删除多个条目,您需要首先检索它们的密钥,然后发送多个删除请求。有两种方法可以改进此过程:

  • 使用OData批处理在单个HTTP调用中发送所有删除请求
  • 使用一些可以使用过滤器模拟删除的库(在内部,它们将发出多个请求,但对于应用程序,它看起来像一个调用)。其中一个库是Simple.OData.Client

  • 希望这有帮助。

    ODataV4支持DELETE/entity格式(key1=''、key2='')等等

    但是,对于ODataV2,一个选项是使用请求主体传递一些数据。删除/实体,主体中包含数据。 该文件规定,公约将按键删除实体。然而,当我们必须通过多个键删除ODataV2服务时,我们采用了这种方法。此外,在使用ODataV2库实现此功能时,我们必须添加路由约定以支持无键删除

    http://.../<oDataServiceX>/Item?$filter=keyAttr1 eq 1 and keyAttr2 eq 54 and keyAttr 3 eq 2