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.
Une uma tabela relacionada à entidade ou à entidade de link para retornar colunas adicionais com o resultado. Também usado com elementos de filtro para aplicar condições em valores de coluna em tabelas relacionadas.
Saiba como unir tabelas usando FetchXml.
Exemplos
Os exemplos a seguir mostram o uso link-entity com diferentes tipos de relações.
Relação muitos para um
Essa consulta retorna dados da conta e tabelas de contato com base na coluna de pesquisa PrimaryContactId no registro da conta:
<fetch>
<entity name='account'>
<attribute name='name' />
<link-entity name='contact'
from='contactid'
to='primarycontactid'
link-type='inner'
alias='contact'>
<attribute name='fullname' />
</link-entity>
</entity>
</fetch>
Relação um-para-muitos
Essa consulta retorna dados das tabelas de contato e conta com base no contato account_primary_contact relação um-para-muitos.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Relação muitos para muitos
Essa consulta retorna dados das tabelas SystemUser e Team usando a relação teammembership_association muitos para muitos.
<fetch>
<entity name='systemuser'>
<attribute name='fullname' />
<link-entity name='teammembership'
from='systemuserid'
to='systemuserid' >
<link-entity name='team'
from='teamid'
to='teamid'
link-type='inner'
alias='team'>
<attribute name='name' />
</link-entity>
</link-entity>
</entity>
</fetch>
Attributes
| Nome | Obrigatório? | Description |
|---|---|---|
name |
Yes | O nome lógico da tabela relacionada. |
to |
Não | O nome lógico da coluna no elemento pai a ser correspondido com a coluna de tabela relacionada especificada no from atributo.
Embora não seja tecnicamente necessário, esse atributo geralmente é usado. |
from |
Não | O nome lógico da coluna da tabela relacionada que corresponde à coluna especificada no to atributo.
Embora não seja tecnicamente necessário, esse atributo geralmente é usado. |
alias |
Não | Representa o nome da tabela relacionada. Se você não definir um alias, será gerado um para garantir que todas as colunas tenham nomes exclusivos, mas você não poderá usar esse alias para fazer referência à entidade de link em outras partes do XML de busca. Os aliases gerados automaticamente usam o padrão {LogicalName}+{N}, onde N está o número sequencial da entidade de link no XML de busca a partir de 1. |
link-type |
Não | O tipo de uso de link. O comportamento padrão é interno. Saiba mais sobre opções de tipo de link |
intersect |
Não | Indica que o link-entity é usado para unir tabelas e não retornar colunas, normalmente para uma relação muitos para muitos. A existência desse atributo não altera a execução da consulta. Você pode adicionar esse atributo ao link-entity ingressar em uma tabela, mas não inclui nenhum elemento de atributo para mostrar que isso é intencional. |
Uso from e to atributos
É melhor definir valores para os atributos e to os from atributos. Esses dois atributos geralmente são usados para definir explicitamente as colunas a serem correspondentes. No entanto, o atributo e o from atributo to não são tecnicamente necessários.
Observação
É importante que as colunas especificadas no
frometoos atributos sejam do mesmo tipo. Não há suporte para o uso de tipos de coluna diferentes. Quando as colunas não são do mesmo tipo, a infraestrutura do Dataverse pode ser capaz de forçar uma conversão, mas essa prática pode resultar em uma penalidade de desempenho significativa.O significado e os
fromtoatributos em FetchXml são o oposto das propriedades LinkEntity.LinkFromAttributeName e LinkEntity.LinkToAttributeNameusadas ao redigir consultas usando QueryExpression.
Se você não usar nenhum desses atributos e houver uma relação muitos para muitos entre as duas tabelas, o Dataverse selecionará os valores de chave apropriados usando essa relação.
Se você especificar apenas um dos atributos outo, o from Dataverse tentará descobrir a relação correta usando as definições de esquema de relação entre as duas tabelas.
Caso contrário, você receberá o seguinte erro:
Código:
0x80041102
Mensagem:No system many-to-many relationship exists between <table A> and <table B>. If attempting to link through a custom many-to-many relationship ensure that you provide the from and to attributes.
Por exemplo, ambas as consultas usam a relação teammembership_association muitos para muitos entre tabelas do systemuser e da equipe . Nesse caso, o Dataverse pode descobrir os from atributos e to os link-entity que especificam a tabela de intersecção não são necessários.
Especificar todos os atributos
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity
name="teammembership"
from="systemuserid"
to="systemuserid"
intersect="true"
>
<link-entity
name="team"
from="teamid"
to="teamid"
link-type="inner"
alias="team"
>
<attribute name="name" />
</link-entity>
</link-entity>
</entity>
</fetch>
Permitir que o Dataverse escolha
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
opções de tipo de link
Use link-type para aplicar filtros nos registros retornados. A tabela a seguir descreve os valores válidos link-type :
| Nome | Description |
|---|---|
inner |
Padrão. Restringe os resultados a linhas com valores correspondentes em ambas as tabelas. |
outer |
Inclui resultados do elemento pai que não têm um valor correspondente. |
any |
Use isso em um elemento de filtro. Restringe os resultados a linhas pai com todas as linhas correspondentes na entidade vinculada.
Saiba como usar any para filtrar valores em tabelas relacionadas |
not any |
Use isso em um elemento de filtro. Restringe os resultados a linhas pai sem linhas correspondentes na entidade vinculada.
Saiba como usar not any para filtrar valores em tabelas relacionadas |
all |
Use isso em um elemento de filtro. Restringe os resultados a linhas pai em que existem linhas com valor de coluna correspondente from na entidade de link, mas nenhuma dessas linhas correspondentes satisfaz os filtros adicionais definidos para essa entidade de link. Você precisa inverter os filtros adicionais para encontrar linhas pai em que cada linha de entidade de link correspondente satisfaça alguns critérios adicionais.
Saiba como usar all para filtrar valores em tabelas relacionadas |
not all |
Use isso em um elemento de filtro. Restringe os resultados a linhas pai com todas as linhas correspondentes na entidade vinculada. Esse tipo de link é equivalente a any apesar do nome.
Saiba como usar not all para filtrar valores em tabelas relacionadas |
exists |
Uma variante disso pode fornecer benefícios de inner desempenho. Usa uma condição EXISTS na where cláusula. Use isso quando várias cópias da linha pai não forem necessárias nos resultados.
Saiba mais sobre exists e em |
in |
Uma variante disso pode fornecer benefícios de inner desempenho. Usa uma condição IN na where cláusula. Use isso quando várias cópias da linha pai não forem necessárias nos resultados.
Saiba mais sobre exists e em |
matchfirstrowusingcrossapply |
Uma variante disso pode fornecer benefícios de inner desempenho. Use esse tipo quando apenas um único exemplo de uma linha correspondente da entidade vinculada for suficiente e várias cópias da linha pai nos resultados não forem necessárias.
Saiba mais sobre matchfirstrowusingcrossapply |
Elementos pai
| Nome | Description |
|---|---|
| entidade | Especifica o elemento filho para um elemento fetch, a "entidade pai" para a consulta. Somente uma entidade é permitida. |
| link-entity | Une uma tabela relacionada à entidade ou à entidade de link para retornar mais colunas com o resultado. |
Elementos filho
| Nome | Ocorrências | Description |
|---|---|---|
| todos os atributos | 0 ou 1 | Indica que todos os valores de coluna não nulos para cada linha são retornados. É o mesmo que não adicionar nenhum elemento de atributo. Não recomendamos usar esse elemento para a maioria dos casos. |
| atributo | 0 ou muitos | Especifica uma coluna de uma entidade ou entidade de link a ser retornada com uma consulta. |
| ordem | 0 ou muitos | Especifica uma ordem de classificação para as linhas dos resultados. |
| link-entity | 0 ou muitos | Une uma tabela relacionada à entidade ou à entidade de link para retornar mais colunas com o resultado. |
| filtro | 0 ou 1 | Especifique condições complexas para que uma entidade ou entidade de link se aplique a uma consulta. |