Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
Можете да свържете отделни записи в редове на таблица с други записи, като използвате релации, които съществуват между дефинициите на таблицата. В OData релациите се изразяват като навигационни свойства.
Можете да откриете кои свойства на навигацията съществуват в документа за $metadata услуга. Вижте Свойства за навигация в уеб API. За съществуващите таблици на Dataverse, вижте Web API EntityType Reference
, за всеки тип субект, вижте изброените навигационни свойства с едностойностни и колекционни стойности.
Следващата таблица описва трите типа релации между таблици в Dataverse.
| Вид | Описание | Пример |
|---|---|---|
| Един към много | Един запис може да има много записи, свързани с него. | Записът на акаунта може да има много записи на контакт в contact_customer_accountsсвойството за навигация със стойност на колекцията. |
| Много към едно | Много записи могат да бъдат свързани с един запис. Много към едно е огледален образ на връзката един към много. Има само една връзка. |
Няколко записа на контакт могат да бъдат свързани с един запис на акаунт с помощта на parentcustomerid_accountсвойството за навигация с една стойност. |
| Много към много | Много записи могат да бъдат свързани с много записи. | Всяка права за достъп (роля) може да включва препратки към дефиницията на системен потребител. И двете таблици имат systemuserroles_associationсвойство за навигация със стойност на колекция. |
Използване на свойства за навигация с една стойност
За съществуващи записи от многото страна на релация "едно към много" или "много към едно" можете да свържете записа, като зададете препратка към URI към другия запис. Най-лесният и често срещан начин да направите това е да добавите @odata.bind анотацията към името на свойството за навигация с една стойност и след това да зададете стойността като URI към другия запис в PATCH заявка.
Свързване със свойство за навигация с една стойност
Например, за да асоциирате контактен запис с акаунт , използвайки parentcustomerid_account едностойностното навигационно свойство:
Молба:
PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"parentcustomerid_account@odata.bind": "accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Както е описано в редовете на Асоциирана таблица при създаване, можете също да асоциирате нови записи със съществуващи записи по същия начин.
Диасоцииране чрез използване на навигационно свойство с една стойност
За да се дисоциирате, задайте стойността на null.
Молба:
PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"parentcustomerid_account@odata.bind": null
}
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Когато се дистанцирате с този метод, не включвайте @odata.bind анотацията. Използвайте името на едностойностното навигационно свойство:
Молба:
PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"parentcustomerid_account": null
}
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Повече информация: Основна актуализация
Други методи
Можете да използвате други методи, за да постигнете същите описани резултати с едностойностни навигационни свойства.
Използвайте следната PUT заявка, за да зададете стойността на parentcustomerid_account едностойностното навигационно свойство:
Молба:
PUT [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.id": "[Organization URI]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Бележка
Трябва да използвате абсолютен URL при задаване на стойността за @odata.id.
За да премахнете препратката, използвайте тази DELETE заявка:
Молба:
DELETE [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Използване на свойства за навигация със стойност на колекция
При OData и двете страни на релацията "много към много" имат стойности за колекция навигационни свойства. За връзки едно към много и много към едно таблицата от страната "Едно" има навигационно свойство с стойност на колекцията. Няма разлика в начина, по който работиш с тези видове връзки, когато използваш навигационни свойства с колекция-стойност. Този раздел описва как да се работи с колекция-стойностни навигационни свойства за всякакъв тип връзка.
Добавяне на запис към колекция
Следващият пример показва как да добавите запис на контакт към колекцията от акаунтиcontact_customer_accounts , която е част от релация един към много.
Молба:
POST [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.id": "[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)"
}
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Следващият пример показва как да добавите запис на роля към колекцията systemusersystemuserroles_association , която е релация много към много.
Молба:
POST [Organization Uri]/api/data/v9.2/systemusers(34dcbaf5-f718-ed11-b83e-00224837179f)/systemuserroles_association/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
{
"@odata.id": "[Organization URI]/api/data/v9.2/roles(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)"
}
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Премахване на запис от колекция
Следващият пример показва как да премахнете запис на контакт в колекцията от акаунтиcontact_customer_accounts , където стойността на контакта contactid е 00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Молба:
DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Следната заявка също работи:
Молба:
DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref?$id=[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json
Отговор:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Вижте също
Пример за основни операции на уеб API (C#)
Пример за основни операции на уеб API (JavaScript от страна на клиента)
Извършване на операции с помощта на уеб API
Съставяне на Http заявки и обработка на грешки
Заявка за данни с помощта на уеб API
Създаване на ред на таблица с помощта на уеб API
Извличане на ред на таблица с помощта на уеб API
Актуализиране и изтриване на редове на таблици с помощта на уеб API
Използване на функции на уеб API
Използване на действия за уеб API
Изпълнение на пакетни операции с помощта на уеб API
Представяне за друг потребител с помощта на уеб API
Извършване на условни операции с помощта на уеб API