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