Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Pode asociar rexistros individuais nas filas da táboa con outros rexistros usando as relacións que existen entre as definicións da táboa. En OData, as relacións exprésanse como propiedades de navegación.
Pode descubrir que propiedades de navegación existen no documento de servizo $metadata. Vexa Propiedades de navegación da API web. Para as táboas Dataverse existentes, véxase a Referencia de EntityType da API Web
, para cada tipo de entidade, vexa as propiedades de navegación de valor único e de colección listadas.
Na seguinte táboa descríbense os tres tipos de relacións entre táboas en Dataverse.
| Tipo | Descripción | Exemplo |
|---|---|---|
| Un a moitos | Un rexistro pode ter moitos rexistros asociados a el. | Un rexistro de conta pode ter moitos rexistros de contacto na propiedade contact_customer_accountsde navegación valorada pola colección. |
| Moitos a un | Moitos rexistros poden ser asociados a un rexistro. Many-to-One é a imaxe espello dunha relación One-to-Many. Só hai unha relación. |
Pódense asociar varios rexistros de contacto a un único rexistro de conta usando a propiedade parentcustomerid_accountde navegación de valor único. |
| Moitos a moitos | Moitos rexistros poden estar asociados a moitos rexistros. | Cada rol de seguridade (role) pode incluír referencias á definición dun usuario do sistema. Ambas as táboas teñen unha systemuserroles_associationpropiedade de navegación valorada pola colección. |
Uso de propiedades de navegación dun só valor
Para os rexistros existentes no lado moitos dunha relación un-a-moitos ou moitos-a-un, pode asociar o rexistro establecendo unha referencia Uri ao outro rexistro. O xeito máis sinxelo e común de facelo é engadir a @odata.bind anotación ao nome da propiedade de navegación dun só valor e, a continuación, establecer o valor como Uri ao outro rexistro nunha PATCH solicitude.
Asociar a unha propiedade de navegación dun só valor
Por exemplo, para asociar un rexistro de contacto a un rexistro de conta usando a parentcustomerid_account propiedade de navegación de valor único:
Solicitude:
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)"
}
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Como se describe nas filas da táboa Associate en create, tamén podes asociar novos rexistros con rexistros existentes do mesmo xeito.
Desasocia usando unha propiedade de navegación de valor único
Para disociar, establece o valor en nulo.
Solicitude:
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
}
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Cando te disocies usando este método, non inclúas a @odata.bind anotación. Usa o nome da propiedade de navegación de valor único:
Solicitude:
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
}
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)
Máis información: Actualización básica
Outros métodos
Podes usar outros métodos para conseguir os mesmos resultados descritos anteriormente con propiedades de navegación de valor único.
Usa a seguinte PUT petición para establecer o valor da parentcustomerid_account propiedade de navegación de valor único:
Solicitude:
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)"
}
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Nota
Debes usar unha URL absoluta ao establecer o valor para @odata.id.
Para eliminar a referencia, usa esta DELETE solicitude:
Solicitude:
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
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Uso de propiedades de navegación con valor de colección
Con OData, ambos os lados dunha relación moitos-a-moitos teñen propiedades de navegación valoradas pola colección. Para relacións de un a moitos e moitos a un, a táboa no lado 'Un' ten unha propiedade de navegación valorada por colección. Non hai diferenza en como traballas con ningún destes tipos de relacións ao usar propiedades de navegación valoradas en colección. Esta sección describe como traballar con propiedades de navegación valoradas en colección para calquera tipo de relación.
Engadir un rexistro a unha colección
O seguinte exemplo móstrase como engadir un rexistro de contacto á colección de contascontact_customer_accounts , que forma parte dunha relación un-a-moitos.
Solicitude:
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)"
}
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
O seguinte exemplo móstrase como engadir un rexistro de rol á colección systemusersystemuserroles_association , que é unha relación de moitos a moitos.
Solicitude:
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)"
}
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Eliminar un rexistro dunha colección
O exemplo seguinte móstrase como eliminar un rexistro de contacto da colección de contascontact_customer_accounts onde está contactido valor de contacto00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Solicitude:
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
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Tamén funciona a seguinte solicitude:
Solicitude:
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
Resposta:
HTTP/1.1 204 NoContent
OData-Version: 4.0
Véxase tamén
Exemplo de operacións básicas da API web (C#)
Exemplo de operacións básicas da API web (JavaScript do lado do cliente)
Realizar operacións usando a API Web
Composición de solicitudes HTTP e xestionar erros
Consulta datos usando a API Web
Crear unha fila de táboa usando a API web
Recuperar unha fila de táboa usando a API web
Actualizar e eliminar filas de táboa usando a API web
Usar funcións da API web
Use accións da API web
Executar operacións por lotes usando a API web
Suplantar a outro usuario usando a API web
Realizar operacións condicionais usando a API web