Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiunge una tabella correlata all'entità o all'entitàdi collegamento per restituire colonne aggiuntive con il risultato. Usato anche con gli elementi filtro per applicare condizioni sui valori di colonna nelle tabelle correlate.
Informazioni su come unire tabelle usando FetchXml.
Esempi
Negli esempi seguenti viene illustrato l'uso link-entity di con tipi diversi di relazioni.
Relazione molti-a-uno
Questa query restituisce dati dalle tabelle dell'account e dei contatti in base alla colonna di ricerca PrimaryContactId nel record dell'account:
<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>
Relazione uno-a-molti
Questa query restituisce dati dalle tabelle dei contatti e degli account in base alla relazione contatto account_primary_contact uno-a-molti.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Relazione molti-a-molti
Questa query restituisce dati dalle tabelle SystemUser e Team usando la relazione molti-a-molti teammembership_association.
<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 | Obbligatorio? | Description |
|---|---|---|
name |
Yes | Nome logico della relativa tabella. |
to |
NO | Nome logico della colonna nell'elemento padre in modo che corrisponda alla colonna della tabella correlata specificata nell'attributo from .
Anche se non tecnicamente richiesto, questo attributo viene in genere usato. |
from |
NO | Nome logico della colonna della tabella correlata corrispondente alla colonna specificata nell'attributo to .
Anche se non tecnicamente richiesto, questo attributo viene in genere usato. |
alias |
NO | Rappresenta il nome della tabella correlata. Se non si imposta un alias, ne verrà generato uno per assicurarsi che tutte le colonne abbiano nomi univoci, ma non sarà possibile usare tale alias per fare riferimento all'entità di collegamento in altre parti del file XML di recupero. Gli alias generati automaticamente usano il modello {LogicalName}+{N}, dove N è il numero sequenziale dell'entità di collegamento nel file XML di recupero a partire da 1. |
link-type |
NO | Tipo di utilizzo del collegamento. Il comportamento predefinito è interno. Informazioni sulle opzioni del tipo di collegamento |
intersect |
NO | Indica che link-entity viene utilizzato per unire tabelle e non restituire colonne, in genere per una relazione molti-a-molti. L'esistenza di questo attributo non modifica l'esecuzione della query. È possibile aggiungere questo attributo all'utente link-entity quando si aggiunge una tabella, ma non si includono elementi di attributo per indicare che questo è intenzionale. |
Uso di from attributi e to
È consigliabile impostare i valori per gli from attributi e to . Entrambi questi attributi vengono in genere usati per definire in modo esplicito le colonne da associare. Tuttavia, gli from attributi e to non sono tecnicamente necessari.
Annotazioni
È importante che le colonne specificate negli
fromattributi etosiano dello stesso tipo. L'uso di tipi di colonna diversi non è supportato. Quando le colonne non sono dello stesso tipo, l'infrastruttura di Dataverse potrebbe essere in grado di forzare una conversione, ma questa procedura può comportare una riduzione significativa delle prestazioni.Il significato degli
fromattributi etoin FetchXml è l'opposto delle proprietà LinkEntity.LinkFromAttributeName e LinkEntity.LinkToAttributeName utilizzate per la composizione di query tramite QueryExpression.
Se non si usa nessuno di questi attributi e tra le due tabelle esiste una relazione molti-a-molti di sistema, Dataverse seleziona i valori chiave appropriati usando tale relazione.
Se si specifica solo uno degli from attributi o to , Dataverse tenta di individuare la relazione corretta usando le definizioni dello schema di relazione tra le due tabelle.
In caso contrario, verrà visualizzato l'errore seguente:
Codice:
0x80041102
Messaggio: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.
Ad esempio, entrambe queste query usano la teammembership_association relazione molti-a-molti tra tabelle systemuser e team . In questo caso, Dataverse può elaborare gli from attributi e to e che link-entity specifica che la tabella interseca non è necessaria.
Specificare tutti gli attributi
<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>
Consenti a Dataverse di scegliere
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
opzioni del tipo di collegamento
Utilizzare link-type per applicare filtri ai record restituiti. Nella tabella seguente vengono descritti i valori validi link-type :
| Nome | Description |
|---|---|
inner |
Default. Limita i risultati alle righe con valori corrispondenti in entrambe le tabelle. |
outer |
Include i risultati dell'elemento padre che non hanno un valore corrispondente. |
any |
Usare questo elemento all'interno di un elemento filtro. Limita i risultati alle righe padre con righe corrispondenti nell'entità collegata.
Informazioni su come usare any per filtrare i valori nelle tabelle correlate |
not any |
Usare questo elemento all'interno di un elemento filtro. Limita i risultati alle righe padre senza righe corrispondenti nell'entità collegata.
Informazioni su come usare not any per filtrare i valori nelle tabelle correlate |
all |
Usare questo elemento all'interno di un elemento filtro. Limita i risultati alle righe padre in cui esistono righe con valore di colonna corrispondente from nell'entità di collegamento, ma nessuna di queste righe corrispondenti soddisfa i filtri aggiuntivi definiti per questa entità di collegamento. È necessario invertire i filtri aggiuntivi per trovare le righe padre in cui ogni riga di entità di collegamento corrispondente soddisfa alcuni criteri aggiuntivi.
Informazioni su come usare all per filtrare i valori nelle tabelle correlate |
not all |
Usare questo elemento all'interno di un elemento filtro. Limita i risultati alle righe padre con righe corrispondenti nell'entità collegata. Questo tipo di collegamento equivale a any nonostante il nome.
Informazioni su come usare not all per filtrare i valori nelle tabelle correlate |
exists |
Variante di che può offrire vantaggi in termini di inner prestazioni. Usa una condizione EXISTS nella where clausola . Utilizzare questa opzione quando nei risultati non sono necessarie più copie della riga padre.
Altre informazioni su esistono e in |
in |
Variante di che può offrire vantaggi in termini di inner prestazioni. Usa una condizione IN nella where clausola . Utilizzare questa opzione quando nei risultati non sono necessarie più copie della riga padre.
Altre informazioni su esistono e in |
matchfirstrowusingcrossapply |
Variante di che può offrire vantaggi in termini di inner prestazioni. Usare questo tipo quando solo un singolo esempio di una riga corrispondente dall'entità collegata è sufficiente e non sono necessarie più copie della riga padre nei risultati.
Altre informazioni su matchfirstrowusingcrossapply |
Elementi padre
| Nome | Description |
|---|---|
| entità | Specifica l'elemento figlio per un elemento di recupero, ovvero l'entità padre per la query. È consentita una sola entità. |
| link-entity | Aggiunge una tabella correlata all'entità o all'entitàdi collegamento per restituire più colonne con il risultato. |
Elementi figlio
| Nome | Occorrenze | Description |
|---|---|---|
| tutti gli attributi | 0 o 1 | Indica che vengono restituiti tutti i valori di colonna non Null per ogni riga. Equivale a non aggiungere elementi di attributo. Non è consigliabile usare questo elemento per la maggior parte dei casi. |
| attributo | 0 o molti | Specifica una colonna da un'entità o un'entità di collegamento da restituire con una query. |
| ordine | 0 o molti | Specifica un ordinamento per le righe dei risultati. |
| link-entity | 0 o molti | Aggiunge una tabella correlata all'entità o all'entitàdi collegamento per restituire più colonne con il risultato. |
| filtro | 0 o 1 | Specificare condizioni complesse per un'entità o un'entità di collegamento da applicare a una query. |