Notă
Accesul la această pagină necesită autorizare. Puteți încerca să vă conectați sau să modificați directoarele.
Accesul la această pagină necesită autorizare. Puteți încerca să modificați directoarele.
Alătură un tabel asociat entității sau entității de legătură pentru a returna coloane suplimentare cu rezultatul. Utilizat și cu elemente de filtrare pentru a aplica condiții pentru valorile de coloană din tabelele asociate.
Aflați cum să asociați tabele utilizând FetchXml.
Exemple
Următoarele exemple arată utilizarea link-entity cu diferite tipuri de relații.
Relație mai-mulți-la-unu
Această interogare returnează date din tabelele de cont și de persoane de contact bazate pe coloana de căutare PrimaryContactId din înregistrarea contului:
<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ție unu-la-mai-mulți
Această interogare returnează date din tabelele de persoane de contact și de cont bazate pe relația Persoană de contact account_primary_contact unu-la-mai-mulți.
<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ție mai-mulți-la-mai-mulți
Această interogare returnează date din tabelele SystemUser și Team utilizând teammembership_association relație mai-mulți-la-mai-mulți.
<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>
Atribute
| Nume | Obligatoriu? | Descriere |
|---|---|---|
name |
Da | Numele logic al tabelului asociat. |
to |
Nu | Numele logic al coloanei din elementul părinte care se potrivește cu coloana de tabel asociată specificată from în atribut.
Deși nu este necesar din punct de vedere tehnic, acest atribut este utilizat de obicei. |
from |
Nu | Numele logic al coloanei din tabelul asociat care corespunde coloanei to specificate în atribut.
Deși nu este necesar din punct de vedere tehnic, acest atribut este utilizat de obicei. |
alias |
Nu | Reprezintă numele tabelului asociat. Dacă nu setați un alias, va fi generat unul pentru dvs., pentru a vă asigura că toate coloanele au nume unice, dar nu veți putea utiliza acel alias pentru a face referire la entitatea de legătură din alte părți ale XML de preluare. Aliasurile generate automat utilizează modelul {LogicalName}+{N}, unde N este numărul secvențial al entității link din preluarea XML începând de la 1. |
link-type |
Nu | Tipul de utilizare a linkului. Comportamentul implicit este interior. Aflați despre opțiunile de tip link |
intersect |
Nu | Indică faptul că este utilizat pentru asocierea link-entity tabelelor și pentru a nu returna coloane, de obicei pentru o relație mai-mulți-la-mai-mulți. Existența acestui atribut nu modifică executarea interogării. Este posibil să adăugați acest atribut la tabelul dvs link-entity . atunci când asociați un tabel, dar nu includeți niciun element atribut pentru a arăta că acest lucru este intenționat. |
Utilizarea from și to atributele
Se recomandă să setați valori atât pentru atribute, cât from și to pentru atribute. Ambele atribute sunt utilizate de obicei pentru a defini în mod explicit coloanele de potrivit. Cu toate acestea, atributele from și to nu sunt necesare din punct de vedere tehnic.
Notă
Este important ca coloanele specificate în
fromșitoatributele să fie de același tip. Nu se acceptă utilizarea unor tipuri diferite de coloane. Atunci când coloanele nu sunt de același tip, infrastructura Dataverse poate impune o conversie, dar această practică poate avea drept consecință o penalizare semnificativă de performanță.Semnificația și atributelor
tofromdin FetchXml sunt opusul proprietăților LinkEntity.LinkFromAttributeName și LinkEntity.LinkToAttributeName utilizate la compunerea interogărilor utilizând QueryExpression.
Dacă nu utilizați niciuna dintre aceste atribute și există o relație de tip mai mulți-la-mai-mulți între cele două tabele, Dataverse selectează valorile cheie corespunzătoare utilizând acea relație.
Dacă specificați doar unul dintre from atributele sau to , Dataverse încearcă să găsească relația corectă utilizând definițiile schemei de relații dintre cele două tabele.
Altfel, veți primi următoarea eroare:
Cod:
0x80041102
Mesaj: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.
De exemplu, ambele interogări utilizează teammembership_association relație mai-mulți-la-mai-mulți între tabelele de sistem și de echipă . În acest caz, Dataverse poate rezolva from și atributele și tolink-entity care specifică tabelul de intersecție nu este necesar.
Specificarea tuturor atributelor
<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>
Permiteți ca Dataverse să aleagă
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
opțiuni de tip link
Se utilizează link-type pentru a aplica filtre pentru înregistrările returnate. Următorul tabel descrie valorile valide link-type :
| Nume | Descriere |
|---|---|
inner |
Implicit. Restricționează rezultatele la rândurile cu valori corespondente din ambele tabele. |
outer |
Include rezultate din elementul părinte care nu au o valoare corespondentă. |
any |
Utilizați-l într-un element de filtrare. Restricționează rezultatele la rândurile părinte cu orice rânduri corespondente din entitatea legată.
Aflați cum să utilizați any pentru a filtra valorile din tabelele asociate |
not any |
Utilizați-l într-un element de filtrare. Restricționează rezultatele la rândurile părinte fără rânduri corespondente în entitatea legată.
Aflați cum să utilizați not any pentru a filtra valorile din tabelele asociate |
all |
Utilizați-l într-un element de filtrare. Restricționează rezultatele la rândurile părinte în care există rânduri cu valoare de coloană corespondentă from în entitatea link, dar niciunul dintre rândurile care se potrivesc nu satisfac filtrele suplimentare definite pentru această entitate de legătură. Trebuie să inversați filtrele suplimentare pentru a găsi rândurile părinte în care fiecare rând de entitate link care se potrivește îndeplinește unele criterii suplimentare.
Aflați cum să utilizați all pentru a filtra valorile din tabelele asociate |
not all |
Utilizați-l într-un element de filtrare. Restricționează rezultatele la rândurile părinte cu orice rânduri corespondente din entitatea legată. Acest tip de link este echivalent cu any , în ciuda numelui.
Aflați cum să utilizați not all pentru a filtra valorile din tabelele asociate |
exists |
O variantă care inner poate oferi beneficii de performanță. Utilizează o condiție EXISTS în where clauză. Utilizați-o atunci când nu sunt necesare mai multe copii ale rândului părinte în rezultate.
Aflați mai multe despre există și în |
in |
O variantă care inner poate oferi beneficii de performanță. Utilizează o condiție IN în where clauză. Utilizați-o atunci când nu sunt necesare mai multe copii ale rândului părinte în rezultate.
Aflați mai multe despre există și în |
matchfirstrowusingcrossapply |
O variantă care inner poate oferi beneficii de performanță. Utilizați acest tip atunci când doar un singur exemplu de rând potrivit din entitatea legată este suficient și nu sunt necesare mai multe copii ale rândului părinte din rezultate.
Aflați mai multe despre potrivireafirstrowusingcrossapply |
Elemente părinte
| Nume | Descriere |
|---|---|
| entitate | Specifică elementul fiu pentru un element preluat, "entitatea părinte" pentru interogare. Este permisă o singură entitate. |
| entitate link | Alătură un tabel asociat entității sau entității de legare pentru a returna mai multe coloane cu rezultatul. |
Elemente fiu
| Nume | Apariţii | Descriere |
|---|---|---|
| toate atributele | 0 sau 1 | Indică faptul că se returnează toate valorile de coloană care nu sunt nule pentru fiecare rând. Este la fel ca adăugarea niciunui element atribut. Nu recomandăm utilizarea acestui element în majoritatea cazurilor. |
| atribut | 0 sau mai multe | Specifică o coloană dintr-o entitate sau o entitate de legătură de returnat cu o interogare. |
| comanda | 0 sau mai multe | Specifică o ordine de sortare pentru rândurile rezultatelor. |
| entitate link | 0 sau mai multe | Alătură un tabel asociat entității sau entității de legare pentru a returna mai multe coloane cu rezultatul. |
| filtru | 0 sau 1 | Specificați condiții complexe pentru o entitate sau o entitate de legătură de aplicat la o interogare. |