Napomena
Za pristup ovoj stranici potrebna je autorizacija. Možete se pokušati prijaviti ili promijeniti direktorije.
Za pristup ovoj stranici potrebna je autorizacija. Možete pokušati promijeniti direktorije.
Spaja tablicu povezanu s entitetom ilientitetom veze radi vraćanja dodatnih stupaca s rezultatom. Koristi se i s elementima filtra radi primjene uvjeta na vrijednosti stupaca u povezanim tablicama.
Saznajte kako spajati tablice pomoću fetchXml.
Primjeri
Sljedeći primjeri pokazuju korištenje link-entity s različitim vrstama odnosa.
Odnos više-prema-jedan
Ovaj upit vraća podatke iz tablica računa ikontakata na temelju stupca pretraživanja PrimaryContactId u zapisu računa:
<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>
Odnos jedan-prema-više
Ovaj upit vraća podatke iz tablica kontakta iračuna na temelju odnosa account_primary_contact jedan-prema-više.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Odnos više-prema-više
Ovaj upit vraća podatke iz tablica SystemUseri Team pomoću teammembership_association više-prema-više.
<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
| Ime | Obvezno? | Opis |
|---|---|---|
name |
Da | Logički naziv povezane tablice. |
to |
Ne | Logički naziv stupca u nadređenom elementu koji se podudara s povezanim stupcem tablice navedenim u atributu from .
Premda to nije tehnički obavezno, taj se atribut obično koristi. |
from |
Ne | Logički naziv stupca iz povezane tablice koji odgovara stupcu navedenom u atributu to .
Premda to nije tehnički obavezno, taj se atribut obično koristi. |
alias |
Ne | Predstavlja naziv povezane tablice. Ako ne postavite pseudonim, generirat će se jedan da bi se osiguralo da svi stupci imaju jedinstvene nazive, ali taj pseudonim nećete moći koristiti za pozivanje entiteta veze u drugim dijelovima fetch XML-a. Automatski generirani pseudonimi koriste uzorak {LogicalName}+{N}, N pri čemu je uzastopni broj entiteta veze u FETCH XML-u počevši od 1. |
link-type |
Ne | Vrsta korištenja veze. Zadano je ponašanje unutarnje. Dodatne informacije o mogućnostima vrste veze |
intersect |
Ne | Označava da se koristi link-entity za spajanje tablica i ne vraća stupce, obično za odnos više-prema-više. Postojanje tog atributa ne mijenja izvršavanje upita. Taj atribut možete dodati u tablicu link-entity prilikom pridruživanja, ali ne i elemente atributa koji pokazuju da je to namjerno. |
Korištenje i from atributi to
Najbolje je postaviti vrijednosti za atribute from i za to atribute. Oba se atributa obično koriste za eksplicitno definiranje stupaca koji će se podudarati. Međutim, atributi fromto i nisu tehnički obavezni.
Napomena
Važno je da stupci navedeni u atributima
fromitomoraju biti iste vrste. Korištenje različitih vrsta stupaca nije podržano. Kada stupci nisu iste vrste, infrastruktura za Dataverse možda će moći prisilno izvršiti pretvorbu, ali ta praksa može dovesti do znatnije kazne za performanse.Značenje i
fromtoatributi u FetchXml su suprotan od odgovarajućih LinkEntity.LinkFromAttributeName i LinkEntity.LinkToAttributeName svojstva koja se koriste prilikom sastavljanja upita pomoću QueryExpression.
Ako ne koristite neki od tih atributa, a između dvije tablice postoji odnos više-prema-više, Dataverse odabire odgovarajuće ključne vrijednosti pomoću tog odnosa.
Ako navedete samo jedan fromto od atributa ili, Dataverse će pokušati otkriti točan odnos pomoću definicija sheme odnosa između dviju tablica.
U suprotnom će vam se prikazati sljedeća pogreška:
Zakonik:
0x80041102
Poruka: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.
Oba upita, primjerice, koriste odnos teammembership_association više-prema-više između sistemskih korisnika i timskih tablica. U tom slučaju Dataverse može raditi na atributima fromtolink-entity i, a ta postavka određuje da tablica sijeku nije potrebna.
Navedite sve atribute
<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>
Neka Dataverse odabere
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
mogućnosti vrste veze
Koristi link-type se za primjenu filtara na vraćene zapise. U sljedećoj su tablici opisane valjane link-type vrijednosti:
| Ime | Opis |
|---|---|
inner |
Zadano. Ograničava rezultate na retke s podudarnim vrijednostima u obje tablice. |
outer |
Obuhvaća rezultate nadređenog elementa koji nema podudarnu vrijednost. |
any |
Koristi se unutar elementa filtra. Ograničava rezultate na nadređene retke s recima koji se podudaraju na povezanom entitetu.
Saznajte kako filtrirati any vrijednosti na povezanim tablicama |
not any |
Koristi se unutar elementa filtra. Ograničava rezultate na nadređene retke bez podudarnih redaka u povezanom entitetu.
Saznajte kako filtrirati not any vrijednosti na povezanim tablicama |
all |
Koristi se unutar elementa filtra. Ograničava rezultate na nadređene retke from u kojima u entitetu veze postoje reci s podudarnim vrijednostima stupca, ali nijedan od tih podudarnih redaka ne zadovoljava dodatne filtre definirane za ovaj entitet veze. Morate obrnuti dodatne filtre da biste pronašli nadređene retke u kojima svaki podudarni redak entiteta veze zadovoljava neke dodatne kriterije.
Saznajte kako filtrirati all vrijednosti na povezanim tablicama |
not all |
Koristi se unutar elementa filtra. Ograničava rezultate na nadređene retke s recima koji se podudaraju na povezanom entitetu. Ta je vrsta veze jednaka unatoč any nazivu.
Saznajte kako filtrirati not all vrijednosti na povezanim tablicama |
exists |
Varijanta koja inner može omogućiti prednosti performansi. Koristi uvjet EXISTS u uvjetu where . Koristi se kada u rezultatima nije potrebno više kopija nadređenog retka.
Saznajte više o tome postoji li i u |
in |
Varijanta koja inner može omogućiti prednosti performansi. Koristi uvjet IN u uvjetu where . Koristi se kada u rezultatima nije potrebno više kopija nadređenog retka.
Saznajte više o tome postoji li i u |
matchfirstrowusingcrossapply |
Varijanta koja inner može omogućiti prednosti performansi. Ovu vrstu koristite kada je dovoljan samo jedan primjer retka koji se podudara iz povezanog entiteta, a više kopija nadređenog retka u rezultatima nije potrebno.
Saznajte više o matchfirstrowusingcrossapply |
Nadređeni elementi
| Ime | Opis |
|---|---|
| entitet | Određuje podređeni element za element dohvaćanja, "nadređeni entitet" za upit. Dopušten je samo jedan entitet. |
| veza - entitet | Spaja tablicu povezanu s entitetom ilientitetom veze radi vraćanja dodatnih stupaca s rezultatom. |
Podređeni elementi
| Ime | Pojavljivanja | Opis |
|---|---|---|
| svi atributi | 0 ili 1 | Pokazuje da se za svaki redak vraćaju sve vrijednosti stupca koje nisu null. To je isto kao da ne dodajete elemente atributa. U većini slučajeva ne preporučujemo korištenje tog elementa. |
| atribut | 0 ili više | Određuje stupac iz entiteta ili entitetaveze koji će se vratiti s upitom. |
| narediti | 0 ili više | Određuje redoslijed sortiranja redaka rezultata. |
| veza - entitet | 0 ili više | Spaja tablicu povezanu s entitetom ilientitetom veze radi vraćanja dodatnih stupaca s rezultatom. |
| filtar | 0 ili 1 | Navedite složene uvjete koje će entitetili entitet veze primijeniti na upit. |