Поделиться через


Метод DELETE (платформа служб данных ADO.NET)

В приведенных ниже списках и примерах описываются протоколы использования метода DELETE службами данных ADO.NET. Описание другого поведения, необходимого для протокола передачи гипертекста, RFC 2616, см. в разделах Общие требования к HTTP (платформа служб данных ADO.NET) и PUT, POST и DELETE (платформа служб данных ADO.NET).

Следующие протоколы применяются к запросам HTTP, использующим метод DELETE.

  • Если в запрос DELETE включено тело сущности, то оно игнорируется, а запрос обрабатывается, как если бы тело сущности не было задано.

  • Если запрос URI метода DELETE указывает несуществующий ресурс служб данных ADO.NET, то запрос возвращает код ответа «404 Ресурс не найден».

  • Результатом успешного выполнения метода DELETE в контексте ресурса служб данных ADO.NET является то, что ресурс, указанный отправленным URI, удаляется и перестает быть доступным по этому URI.

  • Далее перечислены возможные ответы на успешное выполнение метода DELETE:

    • «200 OK», если в ответ включена сущность, описывающая состояние.

    • «202 Запрос принят», если действие еще не вступило в силу.

    • «204 Нет содержимого», если действие вступило в силу, но в ответ не включена сущность.

  • Службы данных ADO.NET должны выполнить запрошенное действие перед ответом на запрос DELETE. Успешные операции удаления всегда возвращают код состояния «204 Нет содержимого».

Типы, поддерживающие метод DELETE

В следующих примерах показаны конечные элементы в синтаксисе пути URL-адреса HTTP, а также условия, при которых эти элементы поддерживают метод DELETE. В каждом случае приводится описание запроса DELETE и предполагаемые результаты.

Следует отметить, что запрос DELETE к ресурсу, поддерживающему метод DELETE, может вызвать ошибку, если у запрашивающего участника нет необходимых прав доступа к указанному ресурсу. В этом случае, как описано в протоколе передачи гипертекста, RFC 2616, запрос возвращает код ответа «401 Отсутствуют необходимые права доступа» или «403 Запрет доступа» в зависимости от того, приведет ли указание другого участника к успешному выполнению запроса.

/<Набор_сущностей>

В следующем примере URI показано использование EntitySet в качестве конечного элемента.

/Customers

Описание

  • Не поддерживает метод DELETE.

  • Для выполнения нескольких операций удаления в одном запросе следует использовать конечную точку пакетной операции.

/<Набор_сущностей>(предикат_ключа)

В следующем примере URI показано использование предиката в качестве конечного элемента.

/Customers('ALFKI')

Описание

  • Поддерживает метод DELETE.

  • Выполняет неполное удаление одиночного экземпляра типа сущности, заданного keyPredicate, чтобы последующие запросы GET к этому типу или одному из его свойств возвращали код ответа «404 Ресурс не найден».

  • Применительно к другим ресурсам могут возникать дополнительные побочные эффекты, например, каскадное удаление, хотя это необязательно.

/<Свойство_навигации> или /<cвойство_ссылки>

В следующем примере URI показано использование свойств и ссылок навигации в качестве конечных элементов.

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

Описание

  • Поддерживает метод DELETE только в конечных точках с количеством элементов, равным 1.

  • Поддерживает метод DELETE, если свойство навигации или ссылки указывает один ресурс, то есть конечную точку связи «к одному».

  • Использует ту же семантику, что и URI вида /<набор_сущностей>(предикат_ключа).

    • Поддерживает метод DELETE.

    • Выполняет неполное удаление одиночного экземпляра типа ресурса, заданного keyPredicate, чтобы последующие запросы GET к этому типу или одному из его свойств возвращали код ответа «404 Ресурс не найден».

    • Применительно к другим ресурсам могут возникать дополнительные побочные эффекты, например, каскадное удаление, хотя это необязательно.

  • Не поддерживает метод DELETE, если свойство навигации или ссылки определяет несколько ресурсов, то есть конечную точку связи «ко многим».

  • Возвращается код ответа «405 Метод не поддерживается».

/<Сложный_тип>

В следующем примере URI показано использование ComplexType в качестве конечного элемента.

/Customers('ALFKI')/Address

Описание

  • Не поддерживает метод DELETE.

  • Удаление типа ComplexType, определенного синтаксисом URI, не поддерживается для служб данных ADO.NET.

/<Свойство>

В следующем примере URI показано использование свойства в качестве конечного элемента.

/Customers('ALFKI')/FirstName

Описание

  • Не поддерживает метод DELETE.

  • Удаление свойства не поддерживается для служб данных ADO.NET.

/<Свойство>/$значение

В следующем примере URI показано использование значения свойства в качестве конечного элемента.

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

Описание

  • Поддерживает метод DELETE.

  • Присваивает свойству значение NULL, если тип свойства допускает значения NULL.

  • В противном случае выдается код ошибки.

  • В коды ответов HTTP входят:

    • Типы, допускающие значения NULL: 204 (Нет содержимого).

    • Типы, не допускающие значения NULL: 405 Метод запрещен.

/<Имя_операции_службы>

В следующем примере URI показано использование имени операции службы и параметров операции в качестве конечного элемента.

/CustomersByCity?city=London

Описание

  • Не поддерживает метод DELETE.

См. также

Понятия

Метод PUT (платформа служб данных ADO.NET)
Метод POST (платформа служб данных ADO.NET)
Метод DELETE (платформа служб данных ADO.NET)