Método DELETE (marco de trabajo de servicios de datos de ADO.NET)

Los protocolos para el uso del método DELETE por parte de los servicios de datos de ADO.NET se describen en las siguientes listas y ejemplos. Otros comportamientos requeridos por el Protocolo de transferencia de hipertexto, RFC 2616 se describen en Requisitos HTTP comunes (marco de trabajo de los servicios de datos de ADO.NET) y PUT, POST y DELETE (marco de trabajo de servicios de datos de ADO.NET).

Los siguientes protocolos se aplican a las solicitudes HTTP que usan el método DELETE.

  • Si una solicitud DELETE incluye un cuerpo de entidad, se omite el cuerpo y la solicitud se trata como si no se hubiera proporcionado ningún cuerpo de entidad.

  • Si el identificador URI de solicitud de una solicitud DELETE identifica un recurso de los servicios de datos de ADO.NET no existente, la solicitud devuelve un código de respuesta 404 No encontrado.

  • El resultado de un método DELETE correcto en el contexto de recurso de servicios de datos de ADO.NET es que se eliminará el recurso identificado por el URI enviado y ya no estará disponible con ese URI.

  • Las posibles respuestas a un método DELETE correcto incluyen:

    • 200 OK, si la respuesta incluye una entidad que describe el estado.

    • 202 Aceptado, si todavía no se ha activado la acción.

    • 204 Sin contenido, si se ha activado la acción pero la respuesta no incluye una entidad.

  • Los servicios de datos de ADO.NET deben completar la acción solicitada antes de responder a una solicitud DELETE. Las operaciones de eliminación correctas siempre devuelven el código de estado 204 Sin contenido.

Tipos que admiten el método DELETE

En los ejemplos siguientes se muestran los elementos finales, en la sintaxis de la ruta de acceso de URL HTTP y las condiciones bajo las que los elementos admiten el método DELETE. Cada caso incluye una descripción de una solicitud DELETE y los resultados previsibles.

Es importante tener en cuenta que se puede producir un error en una solicitud DELETE a un recurso que admite el método DELETE si el principio solicitante no posee los derechos adecuados para el recurso especificado. En este caso, como se describe en el Protocolo de transferencia de hipertexto, RFC 2616, la solicitud devuelve los códigos de respuesta 401 No autorizado o 403 Prohibido, en función de si al proporcionar un principio alternativo en el servicio de datos se podría producir la correcta ejecución de la solicitud.

/<EntitySet>

El siguiente ejemplo de URI muestra un elemento EntitySet como elemento final.

/Customers

Descripción:

  • No admite el método DELETE.

  • Se debe utilizar un punto final de operación por lotes para realizar más de una operación de eliminación en una sola solicitud.

/<EntitySet>(keyPredicate)

En el ejemplo de URI siguiente se muestra keyPredicate como elemento final.

/Customers('ALFKI')

Descripción:

  • Admite el método DELETE.

  • Realiza eliminaciones superficiales de la instancia del tipo de entidad única identificada por keyPredicate para que una solicitud GET subsiguiente al tipo de entidad o a una de sus propiedades devuelva un código de respuesta 404 Recurso no encontrado.

  • Efectos secundarios adicionales, por ejemplo, eliminaciones en cascada, se pueden efectuar en otros recursos, pero no se requieren.

/<NavigationProperty> o /<LinkProperty>

En el ejemplo de URI siguiente se muestran propiedades y vínculos de navegación como elementos finales.

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

Descripción:

  • Sólo admite el método DELETE en los extremos de la relación que tienen una cardinalidad igual a 1.

  • Admite el método DELETE si la propiedad de navegación o de vínculo identifica un recurso único, es decir, el "con 1" final de una relación.

  • Utiliza la misma semántica que las URI /<EntitySet>(keyPredicate).

    • Admite el método DELETE.

    • Realiza eliminaciones superficiales de la instancia del tipo de recurso único identificada por keyPredicate para que una solicitud GET subsiguiente al tipo de recurso o a una de sus propiedades devuelva un código de respuesta 404 Recurso no encontrado.

    • Efectos secundarios adicionales, por ejemplo, eliminaciones en cascada, se pueden efectuar en otros recursos, pero no se requieren.

  • No admite el método DELETE si la propiedad de navegación o de vínculo identifica muchos recursos, es decir, el "muchos" final de una relación.

  • Se devuelve un código de respuesta 405 Método no admitido.

/<ComplexType>

El siguiente ejemplo de URI muestra un elemento ComplexType como elemento final.

/Customers('ALFKI')/Address

Descripción:

  • No admite el método DELETE.

  • La acción de eliminar un ComplexType identificado por la sintaxis de URI no es compatible con los servicios de datos de ADO.NET.

/<Propiedad>

El siguiente ejemplo de URI muestra una propiedad como elemento final.

/Customers('ALFKI')/FirstName

Descripción:

  • No admite el método DELETE.

  • La acción de eliminar una propiedad no es compatible con los servicios de datos de ADO.NET.

/<Propiedad>/$value

El siguiente ejemplo de URI muestra el valor de una propiedad como elemento final.

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

Descripción:

  • Admite el método DELETE.

  • Establece el valor de la propiedad en NULL si el tipo de la propiedad acepta valores NULL.

  • Si el tipo no admite valores NULL, se genera un código de respuesta de error.

  • Entre los códigos de respuesta HTTP se incluyen:

    • Tipos que aceptan valores NULL: 204 (Sin contenido).

    • Tipos que no aceptan valores NULL: 405 Método no permitido.

/<ServiceOperationName>

En el ejemplo de URI siguiente se muestra un serviceOperationName y parámetros de la operación de servicio como elemento final.

/CustomersByCity?city=London

Descripción:

  • No admite el método DELETE.

Vea también

Conceptos

Método PUT (marco de trabajo de los servicios de datos de ADO.NET)
Método POST (marco de trabajo de los servicios de datos de ADO.NET)
Método DELETE (marco de trabajo de servicios de datos de ADO.NET)