Делите путем


Повежите и одвојите редове табеле користећи Веб АПИ

Можете повезати појединачне записе у редовима табеле са другим записима користећи односе који постоје између дефиниција табеле. У ОДата, односи су изражени као својства навигације.

Можете открити које навигационе особине постоје у сервисном документу $ метадата. Погледајте Веб АПИ Навигатион Пропертиес . За постојеће Датаверсе табеле, погледајте Веб АПИ ЕнтитyТипе Референце , за сваки тип ентитета, погледајте наведене једновредне и колекционосне навигационе особине.

Следећа табела описује три врсте односа између табела у Датаверсе.

Тип Опис Пример
Један-на-много Један запис може имати много записа повезаних са њим. Запис рачуна може имати много записа контаката у навигационој особини у вредности накнације колекције . contact_customer_accounts
Много-на-један Многи записи могу бити повезани са једним записом.

Манy -то -Оне је одраз у огледалу односа један-на-многи. Постоји само једна веза.
Вишеструки записи контаката могу бити повезани са једним записом налога користећи једновредну навигацијску особину parentcustomerid_account.
Многи-на-многе Многи записи могу бити повезани са многим записима. Свака безбедносна улога (улога) може да садржи референце на дефиницију системусер-а .
Обе ове табеле имају својство systemuserroles_association навигације у вредности колекције .

Коришћење једновредних својстава навигације

За постојеће записе на многим странама односа један-на-више или више-на-један, можете повезати запис постављањем Ури референце на други запис. Најлакши и најчешћи начин да то урадите је да додате напомену @odata.bind на име једновредне навигационе особине, а затим подесите вредност као Ури на други запис у захтеву 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)

Као што је описано у Придружите редове табеле на креирању , нови записи се такође могу повезати са постојећим записима на исти начин.

Прекини везу са једновредном навигационом особином

Ако желите да одвојите, можете једноставно подесити вредност на нулл.

Захтев:

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

Белешка

белешке : Морате користити апсолутни УРЛ када подешавате вредност за @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

Коришћење својстава навигације са вредношћу колекције

Са ОДата-ом, обе стране односа многих-на-више имају навигационе особине у вредности колекције. За односе један-на-више и више-на-један, табела један - 'Један' страна има навигацијску особину вредну колекције. Нема разлике у томе како радите са било којом од ових врста односа док користите својства навигације у вредности колекције. Овај одељак описује како радити са својствима навигације у вредности колекције са било којом врстом односа.

Додајте запис у колекцију

Следећи пример показује како да додате запис контакта у колекцију налога 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

Следећи пример показује како да додате запис улоге у колекцију системусер systemuserroles_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 где је 00aa00aa-bb11-cc22-dd33-44ee44ee44ee вредност контакта contactid .

Захтев:

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

Погледајте и

Узорак основних операција Веб АПИ-ја (Ц #)
Узорак основних операција Веб АПИ-ја (ЈаваСцрипт на страни клијента)
Обављање операција помоћу Веб АПИ-ја
Саставите Хттп захтеве и грешке у руковању
Упитни подаци помоћу Веб АПИ-ја
Креирајте ред табеле користећи Веб АПИ
Преузмите ред табеле користећи Веб АПИ
Ажурирајте и избришите редове табеле помоћу Веб АПИ-ја
Користите Веб АПИ функције
Користите Веб АПИ акције
Извршите батцх операције користећи Веб АПИ
Лажно представљање другог корисника користећи Веб АПИ
Извршите условне операције користећи Веб АПИ