Deli putem


link-entity element

Spaja tabelu povezanu sa entitetomili entitetom veze da bi vratio dodatne kolone sa rezultatom. Koristi se i sa elementima filtera za primenu uslova na vrednosti kolona u srodnim tabelama.

Saznajte kako da spojite tabele pomoću alatke FetchXml.

Primeri

Sledeći primeri pokazuju korišćenje sa link-entity različitim tipovima relacija.

Relacija više-prema-jedan

Ovaj upit vraća podatke iz naloga i tabela kontakata na osnovu kolone za pronalaženje PrimaryContactId u zapisu naloga:

<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 jedan-prema-više

Ovaj upit vraća podatke iz tabela kontakata i naloga na osnovu relacije "Kontakt 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>

Relacija više-prema-više

Ovaj upit vraća podatke iz tabela SystemUser i Team koristeći teammembership_association više-prema-više relacija.

<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 Da li je potrebno? Opis
name Da Logičko ime srodne tabele.
to No Logičko ime kolone u nadređenom elementu koje se podudara sa srodnom kolonom tabele navedenom u atributu from . Iako tehnički nije neophodno, ovaj atribut se obično koristi.
from No Logičko ime kolone iz srodne tabele koje se podudara sa kolonom navedenom u atributu to . Iako tehnički nije neophodno, ovaj atribut se obično koristi.
alias No Predstavlja ime srodne tabele. Ako ne postavite pseudonim, on će biti generisan da biste se uverili da sve kolone imaju jedinstvena imena, ali nećete moći da koristite taj pseudonim da biste upućili na entitet veze u drugim delovima dobavljanja XML-a. Automatski generisani pseudonimi koriste obrazac , N gde je sekvencijalni broj entiteta {LogicalName}+{N}veze u dobavljanju XML-a počevši od 1.
link-type No Tip korišćenja veze. Podrazumevano ponašanje je unutrašnje. Saznajte više o opcijama tipa veze
intersect No Ukazuje na to da se link-entity koristi za spajanje tabela i ne vraćanje kolona, obično za relaciju više-prema-više. Postojanje ovog atributa ne menja izvršavanje upita. Možete da dodate ovaj atribut link-entity u tabelu kada se pridružujete tabeli, ali ne uključite elemente atributa da biste prikazali da je to namerno.

Korišćenje i from atributi to

Najbolje je da postavite vrednosti za atribute from i za atribute to . Oba ova atributa obično se koriste za izričito definisanje kolona za podudaranje. Međutim, atributi fromto i atributi nisu tehnički neophodni.

Belešku

  • Važno je da kolone navedene u atributima fromto imaju isti tip. Korišćenje različitih tipova kolona nije podržano. Kada kolone nisu istog tipa, Dataverse infrastruktura će možda moći da nametne konverziju, ali ova praksa može dovesti do značajne kazne za performanse.

  • from to Značenje i atributa u alatki FetchXml su suprotni od odgovarajućih svojstava LinkEntity.LinkFromAttributeName i LinkEntity.LinkToAttributeName koja se koriste prilikom sastavljanja upita pomoću funkcije QueryExpression.

Ako ne koristite neki od ovih atributa i između dve tabele postoji sistemska relacija više-prema-više, Dataverse bira odgovarajuće vrednosti ključa pomoću te relacije.

Ako navedete fromto samo jedan od atributa ili atributa, Dataverse pokušava da shvati ispravnu relaciju koristeći definicije šeme relacija između dve tabele.

U suprotnom ćete dobiti sledeću grešku:

Šifru: 0x80041102
Poruku: 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.

Na primer, oba upita koriste relaciju teammembership_association više-prema-više između sistema i tabela tima. U ovom slučaju, Dataverse fromtolink-entity može da ispoštuje atribute i atribute koji navedu tabelu preseka nije neophodna.

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 opciju

<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>

Koristite link-type ga za primenu filtera na vraćene zapise. Sledeća tabela opisuje važeće vrednosti link-type :

Ime Opis
inner Podrazumevano. Ograničava rezultate na redove sa vrednostima koje se podudaraju u obe tabele.
outer Uključuje rezultate nadređenog elementa koji nemaju podudarnu vrednost.
any Koristite ovo u okviru elementa filtera. Ograničava rezultate na nadređene redove sa bilo kojim podudarnim redovima u povezanom entitetu. Saznajte kako da koristite any za filtriranje vrednosti u srodnim tabelama
not any Koristite ovo u okviru elementa filtera. Ograničava rezultate na nadređene redove bez podudarnih redova u povezanom entitetu. Saznajte kako da koristite not any za filtriranje vrednosti u srodnim tabelama
all Koristite ovo u okviru elementa filtera. Ograničava rezultate na nadređene redove u kojima redovi sa vrednošću kolone postoje u entitetu veze, ali nijedan od tih podudarnih redova ne zadovoljava dodatne filtere definisane za ovaj entitet veze.from Morate da invertujte dodatne filtere da biste pronašli nadređene redove u kojima svaki podudarni red entiteta veze ispunjava neke dodatne kriterijume. Saznajte kako da koristite all za filtriranje vrednosti u srodnim tabelama
not all Koristite ovo u okviru elementa filtera. Ograničava rezultate na nadređene redove sa bilo kojim podudarnim redovima u povezanom entitetu. Ovaj tip veze je jednak uprkos imenu any . Saznajte kako da koristite not all za filtriranje vrednosti u srodnim tabelama
exists Varijanta koja može inner da pruži pogodnosti performansi. Koristi uslov EXISTS u odredbi where . Koristite ovo kada u rezultatima nije neophodno više kopija nadređenog reda. Saznajte više o postojećem i u odeljku
in Varijanta koja može inner da pruži pogodnosti performansi. Koristi uslov IN u odredbi where . Koristite ovo kada u rezultatima nije neophodno više kopija nadređenog reda. Saznajte više o postojećem i u odeljku
matchfirstrowusingcrossapply Varijanta koja može inner da pruži pogodnosti performansi. Koristite ovaj tip kada je dovoljan samo jedan primer podudarnog reda iz povezanog entiteta, a u rezultatima nije potrebno više kopija nadređenog reda. Saznajte više o podudaranjufirstrowusingcrossapply

Nadređeni elementi

Ime Opis
Entiteta Navodi podređeni element za element dobavljanja, "nadređeni entitet" za upit. Dozvoljen je samo jedan entitet.
entitet veze Spaja tabelu povezanu sa entitetomili entitetom veze da bi vratio više kolona sa rezultatom.

Podređeni elementi

Ime Pojavljivanja Opis
svi atributi 0 ili 1 Ukazuje na to da se dobijaju sve vrednosti kolone koje nisu nula za svaki red. Isto je kao i dodavanje elemenata atributa. Ne preporučujemo da koristite ovaj element u većini slučajeva.
Atribut 0 ili više Navodi kolonu iz entiteta ili entitetaveze koji treba vratiti sa upitom.
Porudžbine 0 ili više Navodi redosled sortiranja za redove rezultata.
entitet veze 0 ili više Spaja tabelu povezanu sa entitetomili entitetom veze da bi vratio više kolona sa rezultatom.
Filter 0 ili 1 Navedite složene uslove za entitetili entitet veze koji će se primeniti na upit.