DELETE 方法(ADO.NET 数据服务框架)

下面的列表和示例中描述了针对 ADO.NET 数据服务对 DELETE 方法的使用的协议。通用 HTTP 要求(ADO.NET 数据服务框架)PUT、POST 和 DELETE(ADO.NET 数据服务框架)中描述了超文本传输协议 (RFC 2616) 所需的其他行为。

下列协议适用于使用 DELETE 方法的 HTTP 请求。

  • 如果 DELETE 请求包括实体正文,则将忽略该正文并将请求视为没有提供任何实体正文的情况进行处理。

  • 如果 DELETE 请求的请求 URI 标识的是不存在的 ADO.NET 数据服务资源,则该请求将返回“404 未找到”响应代码。

  • ADO.NET 数据服务资源上下文中的 DELETE 方法执行成功的结果是:删除提交的 URI 标识的资源,并且该资源在该 URI 下不再可用。

  • 对成功的 DELETE 方法的可能响应包括:

    • 如果响应包括一个描述状态的实体,则响应为“200 正常”。

    • 如果操作尚未执行,则响应为“202 已接受”。

    • 如果操作已执行但响应未包括实体,则响应为“204 无内容”。

  • 在响应 DELETE 请求之前,ADO.NET 数据服务必须完成请求的操作。成功的删除操作始终返回状态代码“204 无内容”。

支持 DELETE 方法的类型

下面的示例演示 HTTP URL 路径语法中的结束元素和这些元素支持 DELETE 方法的条件。每个示例都包含对 DELETE 请求和可预知的结果的描述。

请务必注意,如果发出请求的主体没有针对指定资源的足够权限,则对支持 DELETE 方法的资源的 DELETE 请求可能会失败。在此情况下,如超文本传输协议 (RFC 2616) 中所述,请求将返回响应代码“401 未授权”或“403 已禁止”,为数据服务提供替代主体是否可让请求成功执行。

/<EntitySet>

下面的 URI 示例将一个 EntitySet 显示为结束元素。

/Customers

说明:

  • 不支持 DELETE 方法。

  • 批处理操作端点必须用于执行单个请求中的多个删除操作。

/<EntitySet>(keyPredicate)

下面的 URI 示例将一个 keyPredicate 显示为结束元素。

/Customers('ALFKI')

说明:

  • 支持 DELETE 方法。

  • 执行由 keyPredicate 标识的单个实体类型实例的浅表删除操作,以便对该实体类型或其属性之一的后续 GET 请求返回响应代码“404 找不到资源”。

  • 可能会对其他资源产生其他副作用(例如级联删除),但不要求这样做。

下面的 URI 示例将导航属性和导航链接显示为结束元素。

/Customers('ALFKI')/Orders
/Customers('ALFKI')/Orders(1)
/Employee(1)/Manager

说明:

  • 仅对具有基数 1 的关系方支持 DELETE 方法。

  • 如果导航或链接属性标识单个资源(即,关系的“to-1”方),则支持使用 DELETE 方法。

  • 使用与 /<EntitySet>(keyPredicate) URI 相同的语义。

    • 支持 DELETE 方法。

    • 执行由 keyPredicate 标识的单个资源类型实例的浅表删除操作,以便对该资源类型或其属性之一的后续 GET 请求返回响应代码“404 找不到资源”。

    • 可能会对其他资源产生其他副作用(例如级联删除),但不要求这样做。

  • 如果导航或链接属性标识多个资源(即,关系的“many”方),则不支持使用 DELETE 方法。

  • 将返回响应代码“405 不支持的方法”。

/<ComplexType>

下面的 URI 示例将一个 ComplexType 显示为结束元素。

/Customers('ALFKI')/Address

说明:

  • 不支持 DELETE 方法。

  • 对于 ADO.NET 数据服务,删除通过 URI 语法标识的 ComplexType 是一种不支持的操作。

/<Property>

下面的 URI 示例将一个属性显示为结束元素。

/Customers('ALFKI')/FirstName

说明:

  • 不支持 DELETE 方法。

  • ADO.NET 数据服务不支持删除属性的操作。

/<Property>/$value

下面的 URI 示例将一个属性值显示为结束元素。

/Customers('ALFKI')/FirstName/$value

说明:

  • 支持 DELETE 方法。

  • 如果属性的类型可为 null,则将属性值设置为 null。

  • 如果类型不可为 null,则将生成错误响应代码。

  • HTTP 响应代码包括:

    • 可为 null 类型:204(无内容)。

    • 不可为 null 类型:405 不允许的方法。

/<ServiceOperationName>

下面的 URI 示例将 serviceOperationName 和服务操作的参数显示为结束元素。

/CustomersByCity?city=London

说明:

  • 不支持 DELETE 方法。

另请参见

概念

PUT 方法(ADO.NET 数据服务框架)
POST 方法(ADO.NET 数据服务框架)
DELETE 方法(ADO.NET 数据服务框架)