Метод 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)