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.
Únese a unha táboa relacionada coa entidade ou entidade de ligazón para devolver columnas adicionais co resultado. Tamén se usa con elementos de filtro para aplicar condicións aos valores das columnas en táboas relacionadas.
Aprende a unir táboas usando FetchXml.
Exemplos
Os seguintes exemplos mostran o uso link-entity con diferentes tipos de relacións.
Relación de moitos a un
Esta consulta devolve datos das táboas de conta e contacto baseadas na columna de busca PrimaryContactId no rexistro 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>
Relación un a moitos
Esta consulta devolve datos das táboas de contacto e conta baseadas na relación de contacto account_primary_contact un-a-moitos.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Relación de moitos a moitos
Esta consulta devolve datos das táboas SystemUser e Team usando a teammembership_association relación moitos-a-moitos.
<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>
Atributos
| Nome | Requirido? | Descrición |
|---|---|---|
name |
Si | Nome lóxico da táboa relacionada. |
to |
Non | O nome lóxico da columna do elemento pai para coincidir coa columna da táboa relacionada especificada no from atributo.
Aínda que non é necesario tecnicamente, normalmente utilízase este atributo. |
from |
Non | Nome lóxico da columna da táboa relacionada que coincide coa columna especificada no to atributo.
Aínda que non é necesario tecnicamente, normalmente utilízase este atributo. |
alias |
Non | Representa o nome da táboa relacionada. Se non estableces un alias, xerarase un para asegurarte de que todas as columnas teñan nomes únicos, pero non poderás usar ese alias para facer referencia á entidade de ligazón noutras partes do XML de recuperación. Os alias xerados automaticamente usan o patrón {LogicalName}+{N}, onde N é o número secuencial da entidade de ligazón no XML de obtención a partir de 1. |
link-type |
Non | O tipo de uso da ligazón. O comportamento por defecto é interno. Aprende sobre as opcións de tipo de ligazón |
intersect |
Non | Indica que o link-entity se usa para unir táboas e non devolver ningunha columna, normalmente para unha relación moitos-a-moitos. A existencia deste atributo non cambia a execución da consulta. Pode engadir este atributo a your link-entity cando se une a unha táboa, pero non inclúa ningún elemento de atributo para demostrar que isto é intencionado. |
Uso from e to atributos
É mellor establecer valores para os from atributos e to . Ambos os atributos adoitan usarse para definir explicitamente as columnas a coincidir. Non obstante, os from atributos e to non son tecnicamente necesarios.
Nota
É importante que as columnas especificadas nos
fromatributos etosexan do mesmo tipo. Non se admite o uso de diferentes tipos de columnas. Cando as columnas non son do mesmo tipo, a infraestrutura de Dataverse pode ser capaz de forzar unha conversión, pero esta práctica pode provocar unha penalización significativa de rendemento.O significado dos
fromatributos andtoen FetchXml é o contrario das propiedades correspondentes LinkEntity.LinkFromAttributeName e LinkEntity.LinkToAttributeName usadas ao compoñer consultas usando QueryExpression.
Se non usa ningún destes atributos e existe unha relación de moitos a moitos do sistema entre as dúas táboas, Dataverse selecciona os valores de clave apropiados usando esa relación.
Se especifica só un dos from atributos or to , Dataverse intenta descubrir a relación correcta usando as definicións do esquema de relación entre as dúas táboas.
En caso contrario, aparecerá o seguinte erro:
Código:
0x80041102
Mensaxe: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 usan a teammembership_association relación moitos-a-moitos entre as táboas de usuario do sistema e do equipo . Neste caso, Dataverse pode traballar os from atributos and to e o link-entity que especifica a táboa de intersección non é necesario.
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>
Deixa que Dataverse escolla
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
Opcións do tipo de ligazón
Utilízase link-type para aplicar filtros aos rexistros devoltos. Na seguinte táboa descríbense os valores válidos link-type :
| Nome | Descrición |
|---|---|
inner |
Predefinido. Restrinxe os resultados ás filas con valores correspondentes en ambas as táboas. |
outer |
Inclúe os resultados do elemento pai que non teñen un valor correspondente. |
any |
Utilízao dentro dun elemento de filtro. Restrinxe os resultados ás filas pais con calquera fila correspondente na entidade ligada.
Aprende a usar any para filtrar valores en táboas relacionadas |
not any |
Utilízao dentro dun elemento de filtro. Restrinxe os resultados ás filas pais sen filas correspondentes na entidade ligada.
Aprende a usar not any para filtrar valores en táboas relacionadas |
all |
Utilízao dentro dun elemento de filtro. Restrinxe os resultados ás filas pai nas que existen filas co valor de columna correspondente from na entidade de ligazón, pero ningunha desas filas correspondentes satisfai os filtros adicionais definidos para esta entidade de ligazón. Cómpre invertir os filtros adicionais para atopar filas pais onde cada fila de entidade de ligazón correspondente satisfai algúns criterios adicionais.
Aprende a usar all para filtrar valores en táboas relacionadas |
not all |
Utilízao dentro dun elemento de filtro. Restrinxe os resultados ás filas pais con calquera fila correspondente na entidade ligada. Este tipo de ligazón é equivalente a any pesar do nome.
Aprende a usar not all para filtrar valores en táboas relacionadas |
exists |
Unha variante disto pode proporcionar beneficios de inner rendemento. Usa unha condición EXISTS na where cláusula. Utilízase isto cando non sexan necesarias varias copias da fila pai nos resultados.
Máis información sobre Existencia e en |
in |
Unha variante disto pode proporcionar beneficios de inner rendemento. Utiliza unha condición IN na where cláusula. Utilízase isto cando non sexan necesarias varias copias da fila pai nos resultados.
Máis información sobre Existencia e en |
matchfirstrowusingcrossapply |
Unha variante disto pode proporcionar beneficios de inner rendemento. Use este tipo cando só un exemplo dunha fila correspondente da entidade ligada é suficiente e non son necesarias varias copias da fila pai nos resultados.
Máis información sobre matchfirstrowusingcrossapply |
Elementos pais
| Nome | Descrición |
|---|---|
| Entidade | Especifica o elemento fillo para un elemento fetch, a "entidade pai" para a consulta. Só se permite unha entidade. |
| Entidade de ligazón | Únese a unha táboa relacionada coa entidade ou entidade de ligazón para devolver máis columnas co resultado. |
Elementos fillos
| Nome | Ocorrencias | Descrición |
|---|---|---|
| Todos os atributos | 0 ou 1 | Indica que se devolven todos os valores de columna non nulos para cada fila. É o mesmo que non engadir ningún elemento de atributo. Non recomendamos usar este elemento na maioría dos casos. |
| Atributo | 0 ou moitos | Especifica unha columna dunha entidade ou entidade de ligazón para devolver cunha consulta. |
| orde | 0 ou moitos | Especifica unha orde de ordenación para as filas dos resultados. |
| Entidade de ligazón | 0 ou moitos | Únese a unha táboa relacionada coa entidade ou entidade de ligazón para devolver máis columnas co resultado. |
| Filtro | 0 ou 1 | Especificar condicións complexas para que unha entidade ou entidade de ligazón se aplique a unha consulta. |