Бележка
Достъпът до тази страница изисква удостоверяване. Можете да опитате да влезете или да промените директориите.
Достъпът до тази страница изисква удостоверяване. Можете да опитате да промените директориите.
Съединява таблица, свързана с обекта или обекта на свързване , за да върне допълнителни колони с резултата. Използва се също с филтърни елементи за прилагане на условия върху стойности на колони в свързани таблици.
Научете как да съединявате таблици с помощта на 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 може да успее да наложи преобразуване, но тази практика може да доведе до значително неустойка за изпълнение.Значението и
fromtoатрибутите в FetchXml са противоположни на съответните свойства LinkEntity.LinkFromAttributeName и LinkEntity.LinkToAttributeName , използвани при съставяне на заявки с помощта на QueryExpression.
Ако не използвате нито един от тези атрибути и между двете таблици съществува системна релация "много към много", 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 релация "много към много" между systemuser и екипни таблици. В този случай 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>
Позволяване на Dataverse да избира
<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 | Задайте сложни условия за обект или обект на връзка , които да се прилагат към заявка. |