У меня есть пакетный запрос на обновление данных.
Данные:
Item : {
id : int,
name : string,
RefItem : {
int : id,
name : string }
}
мне нужно
- Создать предмет
- Обновить ссылку RefItem для этого вновь созданного элемента в том же пакете. (Предположим, что RefItems (1) уже существует в наборе данных)
Согласно спецификации OData:
</p>
<p>--batch_1872-f36a-7ce8</p>
<p>Content-Type: multipart/mixed; boundary=changeset_8c16-9ba3-2260</p>
<p>--changeset_8c16-9ba3-2260</p>
<p>Content-Type: application/http</p>
<p>Content-Transfer-Encoding: binary</p>
<p>PUT $1/$links/ItemRef HTTP/1.1</p>
<p>Content-ID: 2</p>
<p>Accept: application/atomsvc+xml;q=0.8, application/json;q=0.5, <em>/</em>;q=0.1</p>
<p>DataServiceVersion: 1.0</p>
<p>Content-Type: application/json</p>
<p>{"uri":"ItemRefs(1)"}</p>
<p>--changeset_8c16-9ba3-2260</p>
<p>Content-Type: application/http</p>
<p>Content-Transfer-Encoding: binary</p>
<p>POST Products HTTP/1.1</p>
<p>Content-ID: 1</p>
<p>Accept: application/atomsvc+xml;q=0.8, application/json;q=0.5, <em>/</em>;q=0.1</p>
<p>DataServiceVersion: 1.0</p>
<p>Content-Type: application/json</p>
<p>{"id":-1,"name":"seven"}</p>
<p>--changeset_8c16-9ba3-2260--</p>
<p>--batch_1872-f36a-7ce8--</p>
<p>
Полагаю, это должно работать, но у меня ошибка ответа:
</p>
<p>--batchresponse_4febeba8-dd43-4040-9fdb-866afde5304e
Content-Type: multipart/mixed; boundary=changesetresponse_424dbf12-fa9a-4a59-8284-963fa0fa7b77</p>
<p>--changesetresponse_424dbf12-fa9a-4a59-8284-963fa0fa7b77
Content-Type: application/http
Content-Transfer-Encoding: binary</p>
<p>HTTP/1.1 500 Internal Server Error
Content-ID: 2
X-Content-Type-Options: nosniff
DataServiceVersion: 1.0;
Content-Type: application/json;charset=utf-8</p>
<p>{"d":{"error":{"code":"","message":{"lang":"ru-RU","value":"An error occurred while processing this request."}}}}
--changesetresponse_424dbf12-fa9a-4a59-...
Может кто-нибудь сказать мне, где я не прав?
Спасибо.