Bagikan melalui


elemen entitas tautan

Menggabungkan tabel yang terkait dengan entitas atau entitas tautan untuk mengembalikan kolom tambahan dengan hasilnya. Juga digunakan dengan elemen filter untuk menerapkan kondisi pada nilai kolom dalam tabel terkait.

Pelajari cara menggabungkan tabel menggunakan FetchXml.

Examples

Contoh berikut menunjukkan penggunaan link-entity dengan berbagai jenis hubungan.

Hubungan banyak ke satu

Kueri ini mengembalikan data dari tabel akun dan kontak berdasarkan kolom pencarian PrimaryContactId di rekaman akun:

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

Hubungan satu ke banyak

Kueri ini mengembalikan data dari tabel kontak dan akun berdasarkan hubungan Kontak account_primary_contact satu-ke-banyak.

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

Hubungan banyak ke banyak

Kueri ini mengembalikan data dari tabel SystemUser dan Team menggunakan hubungan teammembership_association banyak ke banyak.

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

Attributes

Nama Wajib diisi? Description
name Yes Nama logis tabel terkait.
to Tidak. Nama logis kolom dalam elemen induk untuk dicocokkan dengan kolom tabel terkait yang ditentukan dalam from atribut . Meskipun tidak diperlukan secara teknis, atribut ini biasanya digunakan.
from Tidak. Nama logis kolom dari tabel terkait yang cocok dengan kolom yang ditentukan dalam to atribut. Meskipun tidak diperlukan secara teknis, atribut ini biasanya digunakan.
alias Tidak. Mewakili nama tabel terkait. Jika Anda tidak mengatur alias, alias akan dibuat untuk Anda untuk memastikan semua kolom memiliki nama unik, tetapi Anda tidak akan dapat menggunakan alias tersebut untuk mereferensikan entitas tautan di bagian lain dari AMBIL XML. Alias yang dihasilkan secara otomatis menggunakan pola {LogicalName}+{N}, di mana N adalah jumlah berurutan dari entitas tautan dalam XML pengambilan mulai dari 1.
link-type Tidak. Jenis penggunaan tautan. Perilaku default adalah bagian dalam. Pelajari tentang opsi jenis tautan
intersect Tidak. Menunjukkan bahwa link-entity digunakan untuk menggabungkan tabel dan tidak mengembalikan kolom apa pun, biasanya untuk hubungan banyak ke banyak. Keberadaan atribut ini tidak mengubah eksekusi kueri. Anda mungkin menambahkan atribut ini ke link-entity saat menggabungkan tabel tetapi tidak menyertakan elemen atribut apa pun untuk menunjukkan bahwa ini disengaja.

Menggunakan from atribut dan to

Yang terbaik adalah mengatur nilai untuk from atribut dan to . Kedua atribut ini biasanya digunakan untuk secara eksplisit menentukan kolom yang cocok. Namun, from atribut dan to tidak diperlukan secara teknis.

Nota

Jika Anda tidak menggunakan salah satu atribut ini, dan hubungan banyak-ke-banyak sistem ada di antara dua tabel, Dataverse memilih nilai kunci yang sesuai menggunakan hubungan tersebut.

Jika Anda hanya menentukan salah from satu atribut atau to , Dataverse mencoba mencari tahu hubungan yang benar menggunakan definisi skema hubungan antara kedua tabel.

Jika tidak, Anda akan mendapatkan kesalahan berikut:

Kode: 0x80041102
Pesan: 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.

Misalnya, kedua kueri ini menggunakan hubungan banyak ke banyak teammembership_association antara systemuser dan tabel tim . Dalam hal ini, Dataverse dapat mencari tahu from atribut dan to dan link-entity yang menentukan tabel bersinggungan tidak diperlukan.

Tentukan semua atribut

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

Biarkan Dataverse memilih

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

Gunakan link-type untuk menerapkan filter pada rekaman yang dikembalikan. Tabel berikut ini menjelaskan nilai yang valid link-type :

Nama Description
inner Default. Membatasi hasil ke baris dengan nilai yang cocok di kedua tabel.
outer Menyertakan hasil dari elemen induk yang tidak memiliki nilai yang cocok.
any Gunakan ini dalam elemen filter. Membatasi hasil ke baris induk dengan baris yang cocok di entitas tertaut. Pelajari cara menggunakan any untuk memfilter nilai pada tabel terkait
not any Gunakan ini dalam elemen filter. Membatasi hasil ke baris induk tanpa baris yang cocok di entitas tertaut. Pelajari cara menggunakan not any untuk memfilter nilai pada tabel terkait
all Gunakan ini dalam elemen filter. Membatasi hasil ke baris induk di mana baris dengan nilai kolom yang from cocok ada di entitas tautan tetapi tidak ada baris yang cocok yang memenuhi filter tambahan yang ditentukan untuk entitas tautan ini. Anda perlu mengubah filter tambahan untuk menemukan baris induk di mana setiap baris entitas tautan yang cocok memenuhi beberapa kriteria tambahan. Pelajari cara menggunakan all untuk memfilter nilai pada tabel terkait
not all Gunakan ini dalam elemen filter. Membatasi hasil ke baris induk dengan baris yang cocok di entitas tertaut. Jenis tautan ini setara dengan any meskipun namanya. Pelajari cara menggunakan not all untuk memfilter nilai pada tabel terkait
exists Varian inner yang dapat memberikan manfaat performa. Menggunakan kondisi EXISTS dalam where klausa. Gunakan ini ketika beberapa salinan baris induk tidak diperlukan dalam hasil. Pelajari selengkapnya tentang ada dan di
in Varian inner yang dapat memberikan manfaat performa. Menggunakan kondisi IN dalam where klausa. Gunakan ini ketika beberapa salinan baris induk tidak diperlukan dalam hasil. Pelajari selengkapnya tentang ada dan di
matchfirstrowusingcrossapply Varian inner yang dapat memberikan manfaat performa. Gunakan jenis ini jika hanya satu contoh baris yang cocok dari entitas tertaut yang cukup dan beberapa salinan baris induk dalam hasil tidak diperlukan. Pelajari selengkapnya tentang matchfirstrowusingcrossapply

Elemen induk

Nama Description
Entitas Menentukan elemen turunan untuk elemen pengambilan, 'entitas induk' untuk kueri. Hanya satu entitas yang diizinkan.
entitas tautan Menggabungkan tabel yang terkait dengan entitas atau entitas tautan untuk mengembalikan lebih banyak kolom dengan hasilnya.

Elemen turunan

Nama Kejadian Description
semua atribut 0 atau 1 Menunjukkan bahwa semua nilai kolom non-null untuk setiap baris dikembalikan. Ini sama dengan tidak menambahkan elemen atribut apa pun. Kami tidak merekomendasikan penggunaan elemen ini untuk sebagian besar kasus.
atribut 0 atau banyak Menentukan kolom dari entitas atau entitas tautan untuk dikembalikan dengan kueri.
perintah 0 atau banyak Menentukan urutan pengurutan untuk baris hasil.
entitas tautan 0 atau banyak Menggabungkan tabel yang terkait dengan entitas atau entitas tautan untuk mengembalikan lebih banyak kolom dengan hasilnya.
saringan 0 atau 1 Tentukan kondisi kompleks untuk entitas atau entitas tautan yang akan diterapkan ke kueri.