2016-11-08 6 views
0

Например, если у фирмы есть работники. Отправляя в odata.svc/Company (1)/Сотрудники/$ ref, я могу сэкономить отношение Company-Employee. Могу ли я сохранить несколько связей между компаниями и сотрудниками таким образом, используя odata.svc/Company (1)/Employees/$ ref/$ batch? Я пробовал, но не работал. Если это неправильный способ, есть ли другая альтернатива?Возможно ли выполнять пакетную операцию для сохранения набора навигационных свойств?

ответ

0

OData не поддерживают пакетный, я не знаю, какую версию OData вы используете, но здесь есть некоторые документы из v3 (v4 то же самый) http://www.odata.org/documentation/odata-version-3-0/batch-processing/

В вашем примере пакетного URL, вы добавляете $ партии до конца URL-адреса, который вы используете, вместо этого вы должны отправить POST на odata.svc/$batch с запросом, который содержит сведения обо всех операциях, которые вы хотите выполнить. Например, вот один из запроса, взятый из этой ссылки:

POST/сервис/$ пакетного HTTP/1.1 Host: Хост Content-Type: многочастных/смешанные; border = batch_36522ad7-fc75-4b56-8c71-56071383e77b

--batch_36522ad7-fc75-4b56-8c71-56071383e77b Тип контента: multipart/mixed; граница = changeset_77162fcd-b8da-41ac-a9f8-9357efbbd621 Content-Length: ###

--changeset_77162fcd-b8da-41ac-a9f8-9357efbbd621 Content-Type: применение/HTTP Content-Transfer-Encoding: бинарное содержимое -ID: 1

POST/услуги/Клиенты HTTP/1.1 Host: хост Content-Type: приложения/атом + XML; тип = запись Content-Length: ###

- changeet_77162fcd-b8da-41ac-a9f8-9357efbbd621 Content-Type: application/http Content-Transfer-Enco динг: бинарное

POST $ 1/Заказы HTTP/1.1 Host: хост Content-Type: приложения/атом + XML; тип = запись Content-Length: ###

--changeset_77162fcd- b8da-41ac-a9f8-9357efbbd621-- --batch_36522ad7-fc75-4b56-8c71-56071383e77b--