Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode associar registros individuais em linhas de tabela a outros registros usando relações que existem entre as definições de tabela. No OData, as relações são expressas como propriedades de navegação.
Você pode descobrir quais propriedades de navegação existem no documento de serviço $metadata. Consulte as propriedades de navegação da API Web. Para tabelas existentes do Dataverse, consulte a Referência do Tipo de Entidade da API Web; para cada tipo de entidade, veja as propriedades de navegação listadas, com valor único e de coleção.
A tabela a seguir descreve os três tipos de relações entre tabelas no Dataverse.
| Tipo | Description | Example |
|---|---|---|
| Um para muitos | Um registro pode ter muitos registros associados a ele. | Um registro de conta pode ter muitos registros de contato na contact_customer_accountspropriedade de navegação com valor de coleção. |
| Muitos para um | Muitos registros podem ser associados a um registro. Muitos para um é a imagem espelhada de uma relação de um para muitos. Há apenas uma relação. |
Vários registros de contato podem ser associados a um único registro de conta usando a parentcustomerid_accountpropriedade de navegação de valor único. |
| Muitos para muitos | Muitos registros podem ser associados a muitos registros. | Cada função de segurança (função) pode incluir referências à definição de um usuário do sistema. Ambas as tabelas têm uma systemuserroles_associationpropriedade de navegação com valor de coleção. |
Usando propriedades de navegação com valor único
Para registros existentes no lado muitos de uma relação um para muitos ou muitos para um, você pode associar o registro definindo uma referência de URI para o outro registro. A maneira mais fácil e comum de fazer isso é acrescentar a anotação @odata.bind ao nome da propriedade de navegação de valor único e, em seguida, definir o valor como o Uri para o outro registro em uma solicitação PATCH.
Associar a uma propriedade de navegação com valor único
Por exemplo, para associar um registro de contato a uma conta usando a parentcustomerid_account propriedade de navegação com valor único:
Pedir:
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)
Conforme descrito em Associar linhas de tabela na criação, novos registros também podem ser associados a registros existentes da mesma maneira.
Desassociar de uma propriedade de navegação com valor único
Se você quiser desassociar, basta definir o valor como nulo.
Pedir:
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)
Ao desassociar dessa maneira, você não precisa incluir a anotação @odata.bind. Você pode simplesmente usar o nome da propriedade de navegação com valor único:
Pedir:
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)
Mais informações: Atualização básica
Outros métodos
Há outras maneiras de obter os mesmos resultados descritos anteriormente com propriedades de navegação com valor único.
Você pode usar a seguinte PUT solicitação para definir o valor da propriedade de parentcustomerid_account navegação com valor único:
Pedir:
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
Observação
Observação: você deve usar uma URL absoluta ao definir o valor para @odata.id.
Para remover a referência, você também pode usar esta DELETE solicitação:
Pedir:
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
Usando propriedades de navegação com valor de coleção
Com o OData, ambos os lados de um relacionamento de muitos para muitos possuem propriedades de navegação com valor de coleção. Para relações de um para muitos e muitos para um, a tabela no lado "Um" possui uma propriedade de navegação com valor de coleção. Não há diferença em como você trabalha com qualquer um desses tipos de relações ao utilizar propriedades de navegação com valor de coleção. Esta seção descreve como trabalhar com propriedades de navegação com valor de coleção com qualquer tipo de relação.
Adicionar um registro a uma coleção
O exemplo a seguir mostra como adicionar um registro de contato à coleção contacontact_customer_accounts, que faz parte de uma relação um para muitos.
Pedir:
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 exemplo a seguir mostra como adicionar um registro de função à coleção systemusersystemuserroles_association, que é uma relação de muitos para muitos.
Pedir:
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
Remover um registro de uma coleção
O exemplo a seguir mostra como remover um registro de contato para a coleção de contascontact_customer_accounts em que o valor do contato contactid está 00aa00aa-bb11-cc22-dd33-44ee44ee44ee.
Pedir:
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
A solicitação a seguir também funciona:
Pedir:
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
Consulte também
Exemplo de operações básicas da API Web (C#)
Exemplo de operações básicas da API Web (JavaScript do lado do cliente)
Executar operações usando a API Web
Redigir solicitações Http e manipular erros
Consultar dados usando a API Web
Criar uma linha de tabela usando a API Web
Recuperar uma linha de tabela usando a API Web
Atualizar e excluir linhas de tabela usando a API Web
Usar funções de API Web
Use ações API da Web
Executar operações em lote usando a API Web
Representar outro usuário usando a API Web
Executar operações condicionais usando a API Web