opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
Združi tabelo, ki je povezana z entitetoali entiteto povezave , da vrne dodatne stolpce z rezultatom. Uporablja se tudi pri elementih filtra za uporabo pogojev za vrednosti stolpcev v povezanih tabelah.
Naučite se združiti tabele s funkcijo FetchXml.
Primeri
Ti primeri prikazujejo uporabo z link-entity različnimi vrstami relacij.
Relacija »mnogo proti ena«
Ta poizvedba vrne podatke iz kupca in tabel stikov na podlagi stolpca za iskanje PrimaryContactId v 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>
Relacija »ena proti mnogo«
Ta poizvedba vrne podatke iz tabel stikovin računov na podlagi account_primary_contact »ena proti mnogo«.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Relacija »mnogo proti mnogo«
Ta poizvedba vrne podatke iz tabel SystemUser in Teamz teammembership_association »mnogo proti mnogo«.
<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
| Imenu | Obvezno? | Description |
|---|---|---|
name |
Da | Logično ime povezane tabele. |
to |
Ne | Logično ime stolpca v nadrejenem elementu, ki se ujema s povezanim stolpcem tabele, določenim v atributu from .
Čeprav ta atribut tehnično ni obvezen, se običajno uporablja. |
from |
Ne | Logično ime stolpca iz povezane tabele, ki se ujema s stolpcem, navedenim v atributu to .
Čeprav ta atribut tehnično ni obvezen, se običajno uporablja. |
alias |
Ne | Predstavlja ime povezane tabele. Če vzdevka ne nastavite, bo ustvarjen za vas, da zagotovite, da imajo vsi stolpci enolična imena, vendar ga ne boste mogli uporabiti za sklicevanje na entiteto povezave v drugih delih pridobivanja XML-ja. Samodejno ustvarjeni vzdevki {LogicalName}+{N}uporabljajo vzorec , N kjer je zaporedna številka entitete povezave v pridobivanju XML od 1. |
link-type |
Ne | Vrsta uporabe povezave. Privzeto vedenje je notranje. Več informacij o možnostih vrste povezave |
intersect |
Ne | Označuje, da link-entity se uporablja za združevanje tabel in ne vrača nobenih stolpcev, po navadi za relacijo »mnogo proti mnogo«. Obstoj tega atributa ne spremeni izvedbe poizvedbe. Ta atribut lahko dodate v tabelo, link-entity ko se pridružite tabeli, ne vključite pa nobenih elementov atributov, ki bi kazali, da je to namerno . |
Uporaba from in to atributi
Najbolje je, da nastavite vrednosti tako za atribute fromto kot tudi za atribute. Oba atributa se običajno uporabljata za eksplicitno določanje stolpcev, ki se ujemajo. Vendar pa atributi fromto niso tehnično obvezni.
opomba,
Pomembno je, da so stolpci, določeni
fromv atributihtoin atributih, enake vrste. Uporaba različnih vrst stolpcev ni podprta. Če stolpci niso iste vrste, lahko infrastruktura Dataverse vsili pretvorbo, vendar lahko ta praksa povzroči znatno kazen za učinkovitost delovanja.fromtoPomen in atributi v FetchXml so nasprotno od ustreznih lastnosti LinkEntity.LinkFromAttributeName in LinkEntity.LinkToAttributeName, ki se uporabljajo pri sestavljanju poizvedb z izrazom »QueryExpression«.
Če ne uporabite katerega od teh atributov in med dvema tabelama obstaja relacija »mnogo proti mnogo«, Dataverse izbere ustrezne vrednosti ključa s to relacijo.
Če določite le enega od atributov from ali to , funkcija Dataverse poskuša ugotoviti pravilno relacijo z definicijami sheme relacije med dvema tabelama.
V nasprotnem primeru se prikaže to sporočilo o napaki:
Koda:
0x80041102
Sporočilo: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.
Obe poizvedbi na primer uporabljata relacijo »teammembership_association »mnogo proti mnogo« med sistemskimi inskupinskimi tabelami . V tem primeru dataverse lahko določi fromtolink-entity in določi, da tabela seka ni potrebna.
Navedite vse 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>
Naj Dataverse izbere
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
možnosti vrste povezave
Uporablja link-type se za uporabo filtrov za vrnjene zapise. V spodnji tabeli so opisane veljavne link-type vrednosti:
| Imenu | Description |
|---|---|
inner |
Privzeto. Omeji rezultate na vrstice z ujemajočimi se vrednostmi v obeh tabelah. |
outer |
Vključuje rezultate nadrejenega elementa, ki nimajo ujemajoče se vrednosti. |
any |
Uporabite to v elementu filtra. Omeji rezultate na nadrejene vrstice s poljubno ujemajočo se vrstico v povezani entiteti.
Naučite se filtrirati any vrednosti v povezanih tabelah |
not any |
Uporabite to v elementu filtra. Omeji rezultate na nadrejene vrstice brez ujemajočih se vrstic v povezani entiteti.
Naučite se filtrirati not any vrednosti v povezanih tabelah |
all |
Uporabite to v elementu filtra. Omeji rezultate na nadrejene vrsticefrom, kjer vrstice z ujemajočo se vrednostjo stolpca obstajajo v entiteti povezave, vendar nobena od teh vrstic ne ustreza dodatnim filtrom, določenim za to entiteto povezave. Dodatne filtre morate pretvoriti, če želite poiskati nadrejene vrstice, kjer vsaka vrstica entitete, ki se ujema, izpolnjuje nekatere dodatne pogoje.
Naučite se filtrirati all vrednosti v povezanih tabelah |
not all |
Uporabite to v elementu filtra. Omeji rezultate na nadrejene vrstice s poljubno ujemajočo se vrstico v povezani entiteti. Ta vrsta povezave je enaka kljub any imenu.
Naučite se filtrirati not all vrednosti v povezanih tabelah |
exists |
Različica, ki inner lahko zagotovi prednosti delovanja. Uporabi pogoj EXISTS v stavku where . To možnost uporabite, če v rezultatih ni potrebnih več kopij nadrejene vrstice.
Več informacij o tem obstaja in v |
in |
Različica, ki inner lahko zagotovi prednosti delovanja. Uporabi pogoj IN v stavku where . To možnost uporabite, če v rezultatih ni potrebnih več kopij nadrejene vrstice.
Več informacij o tem obstaja in v |
matchfirstrowusingcrossapply |
Različica, ki inner lahko zagotovi prednosti delovanja. To vrsto uporabite, če zadostuje le en primer ujemajoče se vrstice iz povezane entitete in ni potrebnih več kopij nadrejene vrstice v rezultatih.
Preberite več o matchfirstrowusingcrossapply |
Nadrejeni elementi
| Imenu | Description |
|---|---|
| entiteta | Določa podrejeni element za element pridobivanja, »nadrejeno entiteto« za poizvedbo. Dovoljena je le ena entiteta. |
| povezava–entiteta | Združi tabelo, ki je povezana z entitetoali entiteto povezave , da vrne več stolpcev z rezultatom. |
Podrejeni elementi
| Imenu | Dogodki | Description |
|---|---|---|
| vsi atributi | 0 ali 1 | Označuje, da so vrnjene vse vrednosti stolpcev, ki niso ničelne za vsako vrstico. Enako je, kot če ne dodate nobenega elementa atributa. Priporočamo, da tega elementa ne uporabljate v večini primerov. |
| lastnost | 0 ali veliko | Določa stolpec iz entitete ali entitetepovezave, ki se vrne s poizvedbo. |
| naročilo | 0 ali veliko | Določa vrstni red razvrščanja za vrstice rezultatov. |
| povezava–entiteta | 0 ali veliko | Združi tabelo, ki je povezana z entitetoali entiteto povezave , da vrne več stolpcev z rezultatom. |
| filter | 0 ali 1 | Določite zapletene pogoje za entiteto ali entiteto povezave, ki jih želite uporabiti za poizvedbo. |