Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Присоединяет таблицу, связанную с сущностью или сущностью link-entity , чтобы вернуть дополнительные столбцы с результатом. Также используется с элементами фильтра для применения условий для значений столбцов в связанных таблицах.
Узнайте, как объединить таблицы с помощью 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>
Attributes
| Имя | Обязательно? | Description |
|---|---|---|
name |
Да | Логическое имя связанной таблицы. |
to |
нет | Логическое имя столбца в родительском элементе , соответствующее связанному столбцу таблицы, указанному в атрибуте from .
Хотя и не требуется технически, этот атрибут обычно используется. |
from |
нет | Логическое имя столбца из связанной таблицы, которая соответствует столбцу, указанному в атрибуте to .
Хотя и не требуется технически, этот атрибут обычно используется. |
alias |
нет | Представляет имя связанной таблицы. Если псевдоним не задан, он будет создан для вас, чтобы убедиться, что все столбцы имеют уникальные имена, но вы не сможете использовать этот псевдоним для ссылки на сущность ссылки в других частях XML-кода получения. Автоматически созданные псевдонимы используют шаблон {LogicalName}+{N}, где N последовательное число сущностей link-entity в XML-коде получения начинается с 1. |
link-type |
нет | Тип использования ссылки. Поведение по умолчанию внутренне. Сведения о параметрах типа ссылки |
intersect |
нет | Указывает, что 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 с атрибутами и to атрибутами, а link-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 значения:
| Имя | Description |
|---|---|
inner |
Default. Ограничивает результаты строками с соответствующими значениями в обеих таблицах. |
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 |
Родительские элементы
| Имя | Description |
|---|---|
| сущность | Указывает дочерний элемент для элемента получения, родительской сущности для запроса. Допускается только одна сущность. |
| link-entity | Присоединяет таблицу, связанную с сущностью или сущностью link-entity , чтобы вернуть больше столбцов с результатом. |
Дочерние элементы
| Имя | Вхождений | Description |
|---|---|---|
| все атрибуты | 0 или 1 | Указывает, что возвращаются все значения столбцов, отличных от NULL для каждой строки. Это то же самое, что и не добавление элементов атрибута. В большинстве случаев этот элемент не рекомендуется использовать. |
| атрибут | 0 или много | Указывает столбец из сущности или сущности link-entity , возвращаемой запросом. |
| порядок | 0 или много | Задает порядок сортировки для строк результатов. |
| link-entity | 0 или много | Присоединяет таблицу, связанную с сущностью или сущностью link-entity , чтобы вернуть больше столбцов с результатом. |
| фильтр | 0 или 1 | Укажите сложные условия для сущности или сущности link-entity , применяемой к запросу. |