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


Простая схема адресации для данных со стандартными URI (платформа служб данных ADO.NET)

Платформа служб данных ADO.NET реализует такую схему адресации, при которой для поиска местоположения данных используются универсальные коды ресурсов (URI). Шаблоны отношений сущностей модели Модель EDM используются для упорядочивания данных, представленных в виде сущностей и связей с сущностями, в логически сгруппированные наборы сущностей. Эти шаблоны отражены в схеме адресации URI.

Чтобы описать эту систему на примере, в следующих примерах используется служба отслеживания клиентов. Все сущности Customer адресуются с использованием следующего URI.

http://myserver/data.svc/Customers

Сегмент /Customers данного URI указывает на набор сущностей Customer, определенный в метаданных. Метаданные платформы служб данных ADO.NET эквивалентны концептуальной схеме в модели EDM. Набор сущностей Customers логически содержит все экземпляры типа сущности Customer.

В этом синтаксисе следующий URI извлекает одну сущность Customer, ключевое свойство которой, как определено в метаданных, имеет значение «ALFKI».

http://myserver/data.svc/Customers('ALFKI')

Сущности и связи

Метаданные описывают структуру типов сущностей и связей между сущностями. Платформа служб данных ADO.NET использует эту информацию, чтобы предоставить механизм для прослеживания связей. Например, если каждая из сущностей Customer в службе данных имеет связанный с ней набор Orders, следующий URI представляет набор заказов на продажу, связанный с Customer, первичный ключ которого имеет значение «ALFKI».

http://myserver/data.svc/Customers('ALFKI')/Orders

Свойства сущности Customer могут адресоваться индивидуально. Например, следующий URI представляет ContactName сущности Customer с ключом «ALFKI»:

http://myserver/data.svc/Customers('ALFKI')/ContactName

Кроме запросов на базе ключа, в схему адресации также могут включаться простые предикаты. Это позволяет выбирать наборы данных на основе свойств сущностей, например выбрать набор активных в настоящее время Orders для Customer с ключом «ALFKI». Эти данные извлекаются следующим URI:

http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=Active eq true

Оператор $filter, используемый в предыдущем примере, также может применяться совместно со строковыми и математическими функциями или функциями для работы с данными. Следующий URI представляет набор активных заказов для Customer «ALFKI», сделанных в 2007 году:

http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true and (year(OrderDate) eq 2007)

Если Orders имеют другие связанные сущности, то URI может продолжить детализацию графа связей, проследить связи и осуществить фильтрацию каждого из результирующих наборов.

Сведения об управлении представлением

Идентификаторы URI служб данных ADO.NET также могут включать в строку запроса информацию, выполняющую сортировку данных. Общие требования для интернет-приложений включают разбиение данных по страницам и сортировку по свойствам. Следующий URI формирует список сущностей Orders, отсортированных по дате:

http://myserver/data.svc/Customers('ALFKI')/Orders?$filter=
Active eq true&$orderby=OrderDate

Постраничный просмотр результатов обеспечивается путем объединения параметров $skip и $top. В списке клиентов номера в интервале 31–41 можно получить, используя следующий URI:

http://myserver/data.svc/Customers?$skip=30&$top=10 

GET, PUT, POST и DELETE

Синтаксис предыдущих примеров использовался в запросе HTTP GET для извлечения сущностей и коллекций сущностей. Для обновления сущностей или связей службы данных ADO.NET используют синтаксис HTTP PUT. Аналогичным образом синтаксис HTTP POST используется для создания новых сущностей, а синтаксис HTTP DELETE — для удаления сущностей из хранилища. Дополнительные сведения см. в разделе Клиентские приложения служб данных ADO.NET.

См. также

Понятия

Службы REST и семантика (платформа служб данных ADO.NET)
Общие требования к HTTP (платформа служб данных ADO.NET)

Другие ресурсы

ADO.NET Entity Framework, платформа