Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Slår sammen en tabell relatert til enheten eller koblingsenheten for å returnere flere kolonner med resultatet. Brukes også med filterelementer til å bruke betingelser på kolonneverdier i relaterte tabeller.
Lær hvordan du kobler sammen tabeller ved hjelp av FetchXml.
Eksempler
Eksemplene nedenfor viser bruk link-entity med ulike typer relasjoner.
Mange-til-én-relasjon
Denne spørringen returnerer data fra konto- og kontakttabellene basert på oppslagskolonnen PrimaryContactId i kontooppføringen:
<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>
Én-til-mange-relasjon
Denne spørringen returnerer data fra kontakt- og kontotabellene basert på kontakt account_primary_contact én-til-mange-relasjon.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Mange-til-mange-relasjon
Denne spørringen returnerer data fra SystemUser - og Team-tabellene ved hjelp av teammembership_association mange-til-mange-relasjon.
<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>
Attributter
| Name | Obligatorisk? | Bekrivelse |
|---|---|---|
name |
Ja | Det logiske navnet på den relaterte tabellen. |
to |
Nei | Det logiske navnet på kolonnen i det overordnede elementet som samsvarer med den relaterte tabellkolonnen som er angitt i attributtet from .
Selv om det ikke er teknisk nødvendig, brukes vanligvis dette attributtet. |
from |
Nei | Det logiske navnet på kolonnen fra den relaterte tabellen som samsvarer med kolonnen som er angitt i attributtet to .
Selv om det ikke er teknisk nødvendig, brukes vanligvis dette attributtet. |
alias |
Nei | Representerer navnet på den relaterte tabellen. Hvis du ikke angir et alias, genereres én for deg for å sikre at alle kolonnene har unike navn, men du kan ikke bruke dette aliaset til å referere til koblingsenheten i andre deler av hente-XML-filen. De automatisk genererte aliasene bruker mønsteret {LogicalName}+{N}, der N er det sekvensielle nummeret til koblingsenheten i hente-XML-filen fra og med 1. |
link-type |
Nei | Typen koblingsbruk. Standard virkemåte er indre. Finn ut mer om alternativer for koblingstype |
intersect |
Nei | Angir at brukes link-entity til å koble sammen tabeller og ikke returnere noen kolonner, vanligvis for en mange-til-mange-relasjon. Dette attributtet endrer ikke kjøringen av spørringen. Du kan legge til dette attributtet link-entity når du blir med i en tabell, men ikke inkluderer noen attributtelementer for å vise at dette er tilsiktet. |
Bruk from og to attributter
Det er best å angi verdier for både from og to attributter. Begge disse attributtene brukes vanligvis til å eksplisitt definere kolonnene som samsvarer. Attributtene from og to er imidlertid ikke teknisk nødvendige.
Note
Det er viktig at kolonnene som er angitt i
fromogtoattributtene, er av samme type. Bruk av ulike kolonnetyper støttes ikke. Når kolonnene ikke er av samme type, kan datavers infrastrukturen tvinge en konvertering, men denne praksisen kan resultere i en betydelig ytelsesstraff.Betydningen av
fromog attributtene i FetchXml er det motsatte av de tilsvarende egenskapene LinkEntity.LinkFromAttributeName og LinkEntity.LinkToAttributeName som brukes når du skriver spørringer ved hjelp av QueryExpressionto.
Hvis du ikke bruker noen av disse attributtene, og det finnes en mange-til-mange-relasjon mellom de to tabellene, velger Dataverse de riktige nøkkelverdiene ved hjelp av denne relasjonen.
Hvis du bare angir ett av attributtene, to prøver Dataverse å finne ut riktig relasjon ved hjelp av from relasjonsskjemadefinisjonene mellom de to tabellene.
Ellers får du følgende feil:
Kode:
0x80041102
Budskap: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.
Begge disse spørringene bruker for eksempel teammembership_association mange-til-mange-relasjon mellom systembruker - og teamtabeller . I dette tilfellet kan Dataverse utarbeide from og to attributter, og link-entity det som angir den kryssende tabellen, er ikke nødvendig.
Angi alle attributter
<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>
La Dataverse velge
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
alternativer for koblingstype
Brukes link-type til å bruke filtre på postene som returneres. Tabellen nedenfor beskriver de gyldige link-type verdiene:
| Name | Bekrivelse |
|---|---|
inner |
Standard. Begrenser resultatene til rader med samsvarende verdier i begge tabellene. |
outer |
Inkluderer resultater fra det overordnede elementet som ikke har en samsvarende verdi. |
any |
Bruk dette i et filterelement. Begrenser resultatene til overordnede rader med eventuelle samsvarende rader i den koblede enheten.
Lær hvordan du kan bruke any til å filtrere verdier i relaterte tabeller |
not any |
Bruk dette i et filterelement. Begrenser resultatene til overordnede rader uten samsvarende rader i den koblede enheten.
Lær hvordan du kan bruke not any til å filtrere verdier i relaterte tabeller |
all |
Bruk dette i et filterelement. Begrenser resultatene til overordnede rader der rader med samsvarende from kolonneverdi finnes i koblingsenheten , men ingen av de samsvarende radene oppfyller tilleggsfiltrene som er definert for denne koblingsenheten. Du må invertere de ekstra filtrene for å finne overordnede rader der hver samsvarende koblingsenhetsrad oppfyller noen ekstra vilkår.
Lær hvordan du kan bruke all til å filtrere verdier i relaterte tabeller |
not all |
Bruk dette i et filterelement. Begrenser resultatene til overordnede rader med eventuelle samsvarende rader i den koblede enheten. Denne koblingstypen tilsvarer any til tross for navnet.
Lær hvordan du kan bruke not all til å filtrere verdier i relaterte tabeller |
exists |
En variant av inner dette kan gi ytelsesfordeler. Bruker en EXISTS-betingelse i setningsdelen where . Bruk dette når flere kopier av den overordnede raden ikke er nødvendige i resultatene.
Finn ut mer om eksisterer og i |
in |
En variant av inner dette kan gi ytelsesfordeler. Bruker en IN-betingelse i setningsdelen where . Bruk dette når flere kopier av den overordnede raden ikke er nødvendige i resultatene.
Finn ut mer om eksisterer og i |
matchfirstrowusingcrossapply |
En variant av inner dette kan gi ytelsesfordeler. Bruk denne typen når bare ett enkelt eksempel på en samsvarende rad fra den koblede enheten er tilstrekkelig, og flere kopier av den overordnede raden i resultatene ikke er nødvendige.
Finn ut mer om matchfirstrowusingcrossapply |
Overordnede elementer
| Name | Bekrivelse |
|---|---|
| enhet | Angir det underordnede elementet for et henteelement, den overordnede enheten for spørringen. Bare én enhet er tillatt. |
| koblingsenhet | Slår sammen en tabell relatert til enheten eller koblingsenheten for å returnere flere kolonner med resultatet. |
Underordnede elementer
| Name | Forekomster | Bekrivelse |
|---|---|---|
| alle attributter | 0 eller 1 | Angir at alle kolonneverdier som ikke er null for hver rad, returneres. Det er det samme som å ikke legge til noen attributtelementer. Vi anbefaler ikke å bruke dette elementet i de fleste tilfeller. |
| attributt | 0 eller mange | Angir en kolonne fra en enhet eller koblingsenhet som skal returneres med en spørring. |
| orden | 0 eller mange | Angir en sorteringsrekkefølge for radene i resultatene. |
| koblingsenhet | 0 eller mange | Slår sammen en tabell relatert til enheten eller koblingsenheten for å returnere flere kolonner med resultatet. |
| filter | 0 eller 1 | Angi komplekse betingelser for en enhet eller koblingsenhet som skal gjelde for en spørring. |