Bendrinti naudojant


link-entity element

Sujungia lentelę, susijusią su subjektu arba saito subjektu , kad pateiktų papildomų stulpelių su rezultatu. Taip pat naudojama su filtro elementais norint taikyti sąlygas stulpelių reikšmėms susijusiose lentelėse.

Sužinokite, kaip sujungti lenteles naudojant "FetchXml".

Pavyzdžiai

Toliau pateikiami pavyzdžiai, kaip naudoti link-entity su skirtingų tipų ryšiais.

Ryšys "daugelis su vienu"

Ši užklausa pateikia duomenis iš kliento ir kontaktų lentelių, pagrįstų abonemento įrašo peržvalgos stulpeliu PrimaryContactId :

<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>

Ryšys "vienas su daugeliu"

Ši užklausa grąžina duomenis iš kontaktų ir klientų lentelių pagal ryšį Kontaktas account_primary_contact ryšį "vienas su daugeliu".

<fetch>
  <entity name='contact'>
    <attribute name='fullname' />
    <link-entity name='account' 
     from='primarycontactid' 
     to='contactid' 
     alias='account'>
      <attribute name='name' />
    </link-entity>
  </entity>
</fetch>

Ryšys "daugelis su daugeliu"

Ši užklausa pateikia duomenis iš "SystemUser" ir "Team" lentelių naudojant ryšį "daugelis su daugeliu" teammembership_association.

<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>

Atributus

Vardas, pavadinimas Būtina? Aprašas
name Taip Loginis susijusios lentelės pavadinimas.
to Ne Pirminio elemento stulpelio loginis pavadinimas , atitinkantis atribute from nurodytą susijusios lentelės stulpelį. Nors techniškai nebūtina, šis atributas paprastai naudojamas.
from Ne Loginis stulpelio susijusios lentelės, atitinkančio atribute nurodytą stulpelį, to pavadinimas. Nors techniškai nebūtina, šis atributas paprastai naudojamas.
alias Ne Nurodo susijusios lentelės pavadinimą. Jei nenustatysite pseudonimo, vienas bus sugeneruotas, kad užtikrintumėte, jog visi stulpeliai turi unikalius pavadinimus, bet šio pseudonimo negalėsite naudoti nuorodai į saito objektą kitose iškvietimo XML dalyse. Automatiškai sugeneruoti pseudonimai naudoja šabloną {LogicalName}+{N}, kur N yra nuoseklus saito subjekto numeris iškvietimo XML nuo 1.
link-type Ne Saito naudojimo tipas. Numatytasis veikimas yra vidinis. Sužinokite apie saito tipo parinktis
intersect Ne Nurodo, kad link-entity naudojama lentelėms sujungti ir nepateikti jokių stulpelių, paprastai ryšiui "daugelis su daugeliu". Šio atributo buvimas nekeičia užklausos vykdymo. Šį atributą galite įtraukti į savo link-entity , kai prisijungiate prie lentelės, bet neįtraukite jokių atributų elementų , kurie parodytų, kad tai tyčia.

Naudojimas from ir to atributai

Geriausia nustatyti ir from atributų, ir to atributų reikšmes. Abu šie atributai paprastai naudojami aiškiai apibrėžti stulpelius, kurie turi atitikti. Tačiau fromto ir atributai nėra techniškai būtini.

Pastaba.

Jei nenaudojate nė vieno iš šių atributų ir tarp dviejų lentelių yra sistemos "daugelis su daugeliu" ryšys, "Dataverse" pasirenka atitinkamas pagrindines reikšmes naudodama tą ryšį.

Jei nurodysite tik vieną iš from atributų, to "Dataverse" bandys išsiaiškinti teisingą ryšį naudodama ryšio schemos apibrėžimus tarp dviejų lentelių.

Kitu atveju gausite šį klaidos pranešimą:

Kodas: 0x80041102
Pranešimas: 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.

Pavyzdžiui, abi šios užklausos naudoja teammembership_association ryšį "daugelis su daugeliu" tarp sistemosvartotojo ir komandos lentelių. Šiuo atveju "Dataverse" gali dirbti from su atributais ir tolink-entity nurodyti susikirtimo lentelę nebūtina.

Nurodyti visus atributus

<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>

Leisti "Dataverse" pasirinkti

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

Naudokite link-type grąžinamų įrašų filtrams taikyti. Šioje lentelėje aprašomos galiojančios link-type reikšmės:

Vardas, pavadinimas Aprašas
inner Numatytoji reikšmė. Apriboja rezultatus iki eilučių, kurių reikšmės abiejose lentelėse sutampa.
outer Apima rezultatus iš pirminio elemento, kuris neturi sutampančios reikšmės.
any Naudokite tai filtro elemente. Apriboja rezultatus iki pirminių eilučių su bet kokiomis sutampančios susieto objekto eilutėmis. Sužinokite, kaip filtruoti any susijusių lentelių reikšmes
not any Naudokite tai filtro elemente. Apriboja rezultatus iki pirminių eilučių be atitinkančių eilučių susietame objekte. Sužinokite, kaip filtruoti not any susijusių lentelių reikšmes
all Naudokite tai filtro elemente. Apriboja rezultatus iki pirminių eilučių, kuriose eilutės su atitinkančia from stulpelio reikšme yra saito objekte, bet nė viena iš atitinkančių eilučių neatitinka papildomų filtrų, apibrėžtų šiam saito objektui. Norėdami rasti pirmines eilutes, kuriose kiekviena atitinkanti saito objekto eilutė atitinka kai kuriuos papildomus kriterijus, turite apversti papildomus filtrus. Sužinokite, kaip filtruoti all susijusių lentelių reikšmes
not all Naudokite tai filtro elemente. Apriboja rezultatus iki pirminių eilučių su bet kokiomis sutampančios susieto objekto eilutėmis. Šis saito tipas atitinka any nepaisant pavadinimo. Sužinokite, kaip filtruoti not all susijusių lentelių reikšmes
exists Variantas inner , kuris gali suteikti našumo pranašumų. Sąlygoje where naudojama sąlyga EXISTS. Naudokite tai, kai rezultatuose nereikia kelių pirminės eilutės kopijų. Sužinokite daugiau apie egzistuoja ir dalyje
in Variantas inner , kuris gali suteikti našumo pranašumų. Sąlygoje where naudojama sąlyga IN. Naudokite tai, kai rezultatuose nereikia kelių pirminės eilutės kopijų. Sužinokite daugiau apie egzistuoja ir dalyje
matchfirstrowusingcrossapply Variantas inner , kuris gali suteikti našumo pranašumų. Naudokite šį tipą, kai pakanka vieno susieto objekto sutampančios eilutės pavyzdžio ir nereikia kelių pirminės eilutės kopijų rezultatuose. Sužinokite daugiau apie matchfirstrowusingcrossapply

Pirminiai elementai

Vardas, pavadinimas Aprašas
subjektas Nurodo antrinį užklausos iškvietimo elemento elementą – pirminį objektą. Leidžiamas tik vienas objektas.
saito subjektas Sujungia lentelę, susijusią su subjektu arba saito subjektu , kad pateiktų daugiau stulpelių su rezultatu.

Antriniai elementai

Vardas, pavadinimas Įvykių Aprašas
visi atributai 0 arba 1 Nurodo, kad pateikiamos visos kiekvienos eilutės ne nulinės stulpelių reikšmės. Tai tas pats, kaip nepridedant jokių atributų elementų. Daugeliu atvejų nerekomenduojame naudoti šio elemento.
Atributas 0 arba daug Nurodo subjekto arba saito subjekto stulpelį, kurį reikia grąžinti su užklausa.
įsakymas 0 arba daug Nurodo rezultatų eilučių rikiavimo tvarką.
saito subjektas 0 arba daug Sujungia lentelę, susijusią su subjektu arba saito subjektu , kad pateiktų daugiau stulpelių su rezultatu.
filtras 0 arba 1 Nurodykite sudėtingas objekto arba saito subjekto , kuris bus taikomas užklausai, sąlygas.