Nota
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba mendaftar masuk atau menukar direktori.
Capaian ke halaman ini memerlukan kebenaran. Anda boleh cuba menukar direktori.
Menyertai jadual yang berkaitan dengan entiti atau entiti pautan untuk mengembalikan lajur tambahan dengan hasilnya. Juga digunakan dengan elemen penapis untuk menggunakan syarat pada nilai lajur dalam jadual berkaitan.
Ketahui cara menyertai jadual menggunakan FetchXml.
Contoh
Contoh berikut menunjukkan penggunaan link-entity dengan pelbagai jenis perhubungan.
Hubungan banyak kepada satu
Pertanyaan ini mengembalikan data daripada jadual akaun dan kenalan berdasarkan lajur carian PrimaryContactId dalam rekod akaun:
<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
Pertanyaan ini mengembalikan data daripada jadual kenalan dan akaun berdasarkan perhubungan satu-ke-banyak Kenalan account_primary_contact.
<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 kepada banyak
Pertanyaan ini mengembalikan data daripada jadual SystemUser dan Team menggunakan perhubungan teammembership_association banyak kepada 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>
Atribut
| Nama | Diperlukan? | Keterangan |
|---|---|---|
name |
Ya | Nama logik jadual yang berkaitan. |
to |
Tidak | Nama logik lajur dalam elemen induk untuk dipadankan dengan lajur jadual berkaitan yang ditentukan dalam from atribut.
Walaupun tidak diperlukan secara teknikal, atribut ini biasanya digunakan. |
from |
Tidak | Nama logik lajur daripada jadual berkaitan yang sepadan dengan lajur yang ditentukan dalam to atribut.
Walaupun tidak diperlukan secara teknikal, atribut ini biasanya digunakan. |
alias |
Tidak | Mewakili nama jadual yang berkaitan. Jika anda tidak mengesetkan alias, satu akan dijana untuk anda memastikan semua lajur mempunyai nama unik, tetapi anda tidak akan dapat menggunakan alias tersebut untuk merujuk entiti pautan di bahagian lain XML ambilan. Alias yang dijana secara automatik menggunakan corak {LogicalName}+{N}, di mana N ialah nombor berjujukan entiti pautan dalam XML pengambilan bermula dari 1. |
link-type |
Tidak | Jenis penggunaan pautan. Tingkah laku lalai adalah dalaman. Ketahui tentang pilihan jenis pautan |
intersect |
Tidak | Menunjukkan bahawa digunakan link-entity untuk menyertai jadual dan tidak mengembalikan sebarang lajur, biasanya untuk perhubungan banyak-ke-banyak. Kewujudan atribut ini tidak mengubah pelaksanaan pertanyaan. Anda mungkin menambah atribut ini pada anda link-entity apabila anda menyertai jadual tetapi tidak menyertakan sebarang elemen atribut untuk menunjukkan bahawa ini disengajakan. |
Menggunakan from dan to atribut
Adalah lebih baik untuk menetapkan nilai untuk kedua-dua from atribut dan to . Kedua-dua atribut ini biasanya digunakan untuk mentakrifkan lajur untuk dipadankan secara eksplisit. Walau bagaimanapun, atribut from dan to tidak diperlukan secara teknikal.
Nota
Adalah penting bahawa lajur yang dinyatakan dalam atribut
fromdantoadalah jenis yang sama. Menggunakan jenis lajur yang berbeza tidak disokong. Apabila lajur bukan jenis yang sama, infrastruktur Dataverse mungkin boleh memaksa penukaran tetapi amalan ini boleh mengakibatkan penalti prestasi yang ketara.Makna atribut
fromdantodalam FetchXml adalah bertentangan dengan sifat LinkEntity.LinkFromAttributeName dan LinkEntity.LinkToAttributeName yang sepadan yang digunakan semasa mengarang pertanyaan menggunakan QueryExpression.
Jika anda tidak menggunakan salah satu daripada atribut ini dan perhubungan banyak sistem wujud antara kedua-dua jadual, Dataverse memilih nilai kunci yang sesuai menggunakan perhubungan tersebut.
Jika anda menentukan hanya satu daripada fromto atau atribut, Dataverse cuba untuk mengetahui perhubungan yang betul menggunakan takrifan skema perhubungan antara kedua-dua jadual.
Jika tidak, anda akan mendapat ralat berikut:
Kod:
0x80041102
Mesej: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.
Sebagai contoh, kedua-dua pertanyaan ini menggunakan perhubungan teammembership_association banyak kepada banyak antara jadual systemuser dan pasukan . Dalam kes ini, Dataverse boleh mengusahakan from atribut dan to dan yang link-entity menentukan jadual persimpangan 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>
Pilihan jenis pautan
Gunakan link-type untuk menggunakan penapis pada rekod yang dikembalikan. Jadual berikut menerangkan nilai yang sah link-type :
| Nama | Keterangan |
|---|---|
inner |
Lalai. Mengehadkan hasil kepada baris dengan nilai padanan dalam kedua-dua jadual. |
outer |
Termasuk hasil daripada elemen induk yang tidak mempunyai nilai yang sepadan. |
any |
Gunakan ini dalam elemen penapis. Mengehadkan hasil kepada baris induk dengan mana-mana baris yang sepadan dalam entiti terpaut.
Belajar menggunakan untuk menapis any nilai pada jadual berkaitan |
not any |
Gunakan ini dalam elemen penapis. Mengehadkan hasil kepada baris induk tanpa baris yang sepadan dalam entiti terpaut.
Belajar menggunakan untuk menapis not any nilai pada jadual berkaitan |
all |
Gunakan ini dalam elemen penapis. Mengehadkan hasil kepada baris induk di mana baris dengan nilai lajur sepadan from wujud dalam entiti pautan tetapi tiada satu pun daripada baris sepadan tersebut memenuhi penapis tambahan yang ditakrifkan untuk entiti pautan ini. Anda perlu menterbalikkan penapis tambahan untuk mencari baris induk di mana setiap baris entiti pautan sepadan memenuhi beberapa kriteria tambahan.
Belajar menggunakan untuk menapis all nilai pada jadual berkaitan |
not all |
Gunakan ini dalam elemen penapis. Mengehadkan hasil kepada baris induk dengan mana-mana baris yang sepadan dalam entiti terpaut. Jenis pautan ini bersamaan dengan any walaupun namanya.
Belajar menggunakan untuk menapis not all nilai pada jadual berkaitan |
exists |
Varian inner itu boleh memberikan faedah prestasi. Menggunakan syarat EXISTS dalam where klausa. Gunakan ini apabila berbilang salinan baris induk tidak diperlukan dalam hasil.
Ketahui lebih lanjut tentang wujud dan dalam |
in |
Varian inner itu boleh memberikan faedah prestasi. Menggunakan syarat IN dalam where klausa. Gunakan ini apabila berbilang salinan baris induk tidak diperlukan dalam hasil.
Ketahui lebih lanjut tentang wujud dan dalam |
matchfirstrowusingcrossapply |
Varian inner itu boleh memberikan faedah prestasi. Gunakan jenis ini apabila hanya satu contoh baris yang sepadan daripada entiti terpaut adalah mencukupi dan berbilang salinan baris induk dalam hasil tidak diperlukan.
Ketahui lebih lanjut tentang matchfirstrowusingcrossapply |
Elemen induk
| Nama | Keterangan |
|---|---|
| Entiti | Menentukan elemen anak untuk elemen ambil, 'entiti induk' untuk pertanyaan. Hanya satu entiti dibenarkan. |
| entiti pautan | Menyertai jadual yang berkaitan dengan entiti atau entiti pautan untuk mengembalikan lebih banyak lajur dengan hasil. |
Elemen kanak-kanak
| Nama | Kejadian | Keterangan |
|---|---|---|
| semua atribut | 0 atau 1 | Menunjukkan bahawa semua nilai lajur bukan nol untuk setiap baris dikembalikan. Ia sama seperti tidak menambah sebarang elemen atribut. Kami tidak mengesyorkan menggunakan elemen ini untuk kebanyakan kes. |
| Atribut | 0 atau banyak | Menentukan lajur daripada entiti atau entiti pautan untuk dikembalikan dengan pertanyaan. |
| Perintah | 0 atau banyak | Menentukan tertib pengisihan untuk baris keputusan. |
| entiti pautan | 0 atau banyak | Menyertai jadual yang berkaitan dengan entiti atau entiti pautan untuk mengembalikan lebih banyak lajur dengan hasil. |
| Penapis | 0 atau 1 | Tentukan syarat kompleks untuk entiti atau entiti pautan untuk digunakan pada pertanyaan. |