Нотатка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
Об'єднує таблицю, пов'язану з сутністю або об'єктом-зв'язком , щоб повернути додаткові стовпці з результатом. Також використовується з елементами фільтра для застосування умов до значень стовпців у пов'язаних таблицях.
Дізнайтеся, як об'єднувати таблиці за допомогою fetchXml.
Приклади
У наведених нижче прикладах показано, як використовувати link-entity зв'язки різних типів.
Зв'язок "багато-до-одного"
Цей запит повертає дані з облікового запису та таблиць контактів на основі стовпця підстановки 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>
Зв'язок "один-до-багатьох"
Цей запит повертає дані з таблиць контактів і облікових записів на основі зв'язку 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>
Зв'язок "багато-до-багатьох"
Цей запит повертає дані з таблиць SystemUser і Team за допомогою зв'язку 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>
Атрибути
| Унікальне ім'я | Обов’язкове? | Опис |
|---|---|---|
name |
Так | Логічна назва пов'язаної таблиці. |
to |
No | Логічне ім'я стовпця батьківського елемента, який відповідає пов'язаному стовпцю таблиці, указаному в атрибуті from .
Хоча це не обов'язковий технічний аргумент, зазвичай використовується цей атрибут. |
from |
No | Логічне ім'я стовпця з пов'язаної таблиці, яке відповідає стовпцю, указаному в атрибуті to .
Хоча це не обов'язковий технічний аргумент, зазвичай використовується цей атрибут. |
alias |
No | Позначає ім'я пов'язаної таблиці. Якщо не встановити псевдонім, його буде створено, щоб переконатися, що всі стовпці мають унікальні імена, але ви не зможете використовувати цей псевдонім, щоб посилатися на сутність посилання в інших частинах віддаленого доступу XML. Автоматично створені псевдоніми використовують шаблон {LogicalName}+{N}, тобто N послідовний номер сутності посилання в віддаленому XML-файлі, починаючи з 1. |
link-type |
No | Тип використання посилання. Поведінка за промовчанням – внутрішня. Відомості про параметри типу посилання |
intersect |
No | Указує, що link-entity використовується для об'єднання таблиць і не повертає жодних стовпців, зазвичай для зв'язку "багато-до-багатьох". Наявність цього атрибута не змінює виконання запиту. Цей атрибут можна додати до link-entity таблиці, але не міститиме жодних елементів атрибута , щоб показати, що це навмисно. |
Використання from та to атрибути
Найкраще встановлювати значення як для атрибутів, from так і to для атрибутів. Обидва ці атрибути зазвичай використовуються для явного визначення стовпців для відповідності. Проте from атрибути та to атрибути не потрібні технічно.
Нотатка
Важливо, щоб стовпці, указані в
fromатрибутах іtoбули однакового типу. Використання різних типів стовпців не підтримується. Якщо стовпці не одного типу, інфраструктура Dataverse може примусово перетворитися, але ця практика може призвести до значного штрафу за продуктивність.Значення та атрибути в FetchXml протилежні відповідним властивостям LinkEntity.LinkFromAttributeName і LinkEntity.LinkToAttributeName, які використовуються під час створення запитів за допомогою QueryExpression.
tofrom
Якщо ви не використовуєте будь-який із цих атрибутів, а між двома таблицями існує зв'язок "багато-до-багатьох" системи, функція Dataverse вибирає відповідні значення ключа, використовуючи цей зв'язок.
Якщо вказати лише один із from атрибутів або to атрибутів, Dataverse спробує з'ясувати правильний зв'язок за допомогою визначень схеми зв'язків між двома таблицями.
В іншому разі з'явиться таке повідомлення про помилку:
Код:
0x80041102
Повідомлення: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.
Наприклад, обидва запити використовують зв'язок teammembership_association "багато-до-багатьох" між системним ікомандними таблицями. У цьому випадку Dataverse може виробити from атрибути та tolink-entity , що визначає таблицю перетину, не обов'язково.
Укажіть усі атрибути
<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>
Вибір варіанта "Зв'язувати з даними"
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
параметри типу посилання
Використовується link-type для застосування фільтрів до повернутих записів. У таблиці нижче описано припустимі link-type значення:
| Унікальне ім'я | Опис |
|---|---|
inner |
За замовчуванням. Обмежує результати рядками з однаковими значеннями в обох таблицях. |
outer |
Містить результати батьківського елемента, які не мають відповідного значення. |
any |
Використовуйте це в елементі фільтра. Обмежує результати батьківськими рядками з будь-яких відповідних рядків у зв'язаній сутності.
Дізнайтеся, як any фільтрувати значення в пов'язаних таблицях |
not any |
Використовуйте це в елементі фільтра. Обмежує результати батьківськими рядками без відповідних рядків у зв'язаній сутності.
Дізнайтеся, як not any фільтрувати значення в пов'язаних таблицях |
all |
Використовуйте це в елементі фільтра. Обмежує результати батьківськими рядками, де в сутності зв'язку існують рядки зі значенням відповідного from стовпця, але жоден із цих відповідних рядків не відповідає додатковим фільтрам, визначеним для цієї сутності посилання. Щоб знайти батьківські рядки, у яких кожен рядок сутності зв'язку відповідає деяким додатковим умовам, потрібно інвертувати додаткові фільтри.
Дізнайтеся, як all фільтрувати значення в пов'язаних таблицях |
not all |
Використовуйте це в елементі фільтра. Обмежує результати батьківськими рядками з будь-яких відповідних рядків у зв'язаній сутності. Цей тип посилання еквівалентний any , незважаючи на ім'я.
Дізнайтеся, як not all фільтрувати значення в пов'язаних таблицях |
exists |
Варіант inner , який може забезпечити переваги продуктивності. Використовує умову EXISTS у реченні where . Використовуйте цей параметр, якщо в результатах не потрібно копіювати кілька копій батьківського рядка.
Дізнайтеся більше про існування та в розділі |
in |
Варіант inner , який може забезпечити переваги продуктивності. Використовує умову IN у реченні where . Використовуйте цей параметр, якщо в результатах не потрібно копіювати кілька копій батьківського рядка.
Дізнайтеся більше про існування та в розділі |
matchfirstrowusingcrossapply |
Варіант inner , який може забезпечити переваги продуктивності. Цей тип використовується, якщо достатньо лише одного прикладу відповідного рядка зі зв'язаної сутності, а кілька копій батьківського рядка в результатах не потрібні.
Докладніше про matchfirstrowusingcrossapply |
Батьківські елементи
| Унікальне ім'я | Опис |
|---|---|
| Сутності | Указує дочірній елемент для елемента віддаленого доступу – батьківську сутність запиту. Дозволено лише одну сутність. |
| зв'язування сутності | Об'єднує таблицю, пов'язану з сутністю або об'єктом зв'язування , щоб повернути більше стовпців із результатом. |
Дочірні елементи
| Унікальне ім'я | Входження | Опис |
|---|---|---|
| all-attributes | 0 або 1 | Указує, що повертаються всі значення стовпців, які не належать до null для кожного рядка. Це те саме, що не додавати елементи атрибута. Ми не радимо використовувати цей елемент у більшості випадків. |
| атрибут | 0 або багато | Визначає стовпець від сутності або сутності-зв'язку для повернення із запитом. |
| замовлення | 0 або багато | Визначає порядок сортування для рядків результатів. |
| зв'язування сутності | 0 або багато | Об'єднує таблицю, пов'язану з сутністю або об'єктом зв'язування , щоб повернути більше стовпців із результатом. |
| фільтр | 0 або 1 | Укажіть складні умови для сутності або сутності зв'язування , які потрібно застосувати до запиту. |