Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Spojí tabulku související s entitou nebo entitou propojení a vrátí další sloupce s výsledkem. Používá se také s elementy filtru k použití podmínek pro hodnoty sloupců v souvisejících tabulkách.
Zjistěte, jak spojit tabulky pomocí FetchXml.
Examples
Následující příklady ukazují použití link-entity s různými typy relací.
Relace M:1
Tento dotaz vrátí data z tabulek účtů a kontaktů na základě vyhledávacího sloupce PrimaryContactId v záznamu účtu:
<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>
Relace 1:N
Tento dotaz vrátí data z tabulek kontaktů a účtů na základě account_primary_contact relace 1:N.
<fetch>
<entity name='contact'>
<attribute name='fullname' />
<link-entity name='account'
from='primarycontactid'
to='contactid'
alias='account'>
<attribute name='name' />
</link-entity>
</entity>
</fetch>
Relace M:N
Tento dotaz vrátí data z tabulek SystemUser a Team pomocí teammembership_association relace M:N.
<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
| Název | Povinné? | Description |
|---|---|---|
name |
Ano | Logický název související tabulky. |
to |
Ne | Logický název sloupce v nadřazené elementu , který se shoduje se souvisejícím sloupcem tabulky zadaným v atributu from .
I když není technicky povinný, tento atribut se obvykle používá. |
from |
Ne | Logický název sloupce ze související tabulky, který odpovídá sloupci zadanému v atributu to .
I když není technicky povinný, tento atribut se obvykle používá. |
alias |
Ne | Představuje název související tabulky. Pokud alias nenastavíte, jeden se vygeneruje, aby všechny sloupce měly jedinečné názvy, ale tento alias nebudete moct použít k odkazování na entitu propojení v jiných částech xml načtení. Automaticky generované aliasy používají vzor {LogicalName}+{N}, kde N je pořadové číslo entity link-entity v fetch XML počínaje 1. |
link-type |
Ne | Typ použití odkazu. Výchozí chování je vnitřní. Další informace o možnostech typu odkazu |
intersect |
Ne | Označuje, že link-entity se používá ke spojení tabulek a nevrací žádné sloupce, obvykle pro relaci M:N. Existence tohoto atributu nemění provádění dotazu. Tento atribut můžete přidat do tabulky link-entity , ale nezahrnujte žádné prvky atributů , které by ukázaly, že je to úmyslné. |
Použití from a to atributy
Nejlepší je nastavit hodnoty pro from oba atributy.to Oba tyto atributy se obvykle používají k explicitní definici sloupců, které se mají shodovat.
from
to Atributy ale nejsou technicky povinné.
Poznámka:
Je důležité, aby sloupce zadané v atributech
frombylytostejného typu. Použití různých typů sloupců není podporováno. Pokud sloupce nejsou stejného typu, infrastruktura Dataverse může být schopná vynutit převod, ale tento postup může vést k významnému snížení výkonu.fromVýznam atoatributy v FetchXml jsou opak odpovídající LinkEntity.LinkFromAttributeName a LinkEntity.LinkEntity.LinkToAttributeName vlastnosti použité při psaní dotazů pomocí QueryExpression.
Pokud nepoužíváte některý z těchto atributů a mezi těmito dvěma tabulkami existuje relace M:N, služba Dataverse vybere odpovídající hodnoty klíče pomocí této relace.
Pokud zadáte pouze jeden z from atributů nebo to atributů, dataverse se pokusí zjistit správnou relaci pomocí definic schématu relací mezi těmito dvěma tabulkami.
V opačném případě se zobrazí následující chyba:
Kód:
0x80041102
Zpráva: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.
Oba tyto dotazy například používají relaci M :N mezi systémovým uživatelem a týmovými tabulkami teammembership_association. V tomto případě může Dataverse pracovat s fromto atributy a link-entity to, které určuje protínací tabulku, není nutná.
Zadání všech 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>
Povolit funkci Dataverse zvolit
<fetch top="2">
<entity name="systemuser">
<attribute name="fullname" />
<link-entity name="team" alias="team">
<attribute name="name" />
</link-entity>
</entity>
</fetch>
Možnosti link-type
Slouží link-type k použití filtrů u vrácených záznamů. Platné hodnoty jsou popsány v link-type následující tabulce:
| Název | Description |
|---|---|
inner |
Výchozí. Omezí výsledky na řádky s odpovídajícími hodnotami v obou tabulkách. |
outer |
Zahrne výsledky z nadřazeného elementu, který nemá odpovídající hodnotu. |
any |
Použijte ho v elementu filtru. Omezí výsledky na nadřazené řádky s libovolnými odpovídajícími řádky v propojené entitě.
Naučte se filtrovat any hodnoty v souvisejících tabulkách. |
not any |
Použijte ho v elementu filtru. Omezí výsledky na nadřazené řádky bez odpovídajících řádků v propojené entitě.
Naučte se filtrovat not any hodnoty v souvisejících tabulkách. |
all |
Použijte ho v elementu filtru. Omezí výsledky na nadřazené řádky, ve kterých v entitě propojení existují řádky s odpovídající from hodnotou sloupce, ale žádný z těchto odpovídajících řádků nevyhovuje dalším filtrům definovaným pro tuto entitu propojení. Pokud chcete najít nadřazené řádky, ve kterých každý odpovídající řádek entity propojení splňuje některá další kritéria, musíte převrátit další filtry.
Naučte se filtrovat all hodnoty v souvisejících tabulkách. |
not all |
Použijte ho v elementu filtru. Omezí výsledky na nadřazené řádky s libovolnými odpovídajícími řádky v propojené entitě. Tento typ odkazu je ekvivalentní any navzdory názvu.
Naučte se filtrovat not all hodnoty v souvisejících tabulkách. |
exists |
Varianta inner , která může poskytovat výhody výkonu. Používá podmínku EXISTS v klauzuli where . Tuto možnost použijte v případě, že ve výsledcích není potřeba více kopií nadřazeného řádku.
Další informace o existenci a in |
in |
Varianta inner , která může poskytovat výhody výkonu. Použije podmínku whereIN v klauzuli. Tuto možnost použijte v případě, že ve výsledcích není potřeba více kopií nadřazeného řádku.
Další informace o existenci a in |
matchfirstrowusingcrossapply |
Varianta inner , která může poskytovat výhody výkonu. Tento typ použijte, pokud stačí jenom jeden příklad odpovídajícího řádku z propojené entity a ve výsledcích není potřeba více kopií nadřazeného řádku.
Další informace o matchfirstrowusingcrossapply |
Nadřazené prvky
| Název | Description |
|---|---|
| entita | Určuje podřízený prvek pro element fetch, nadřazenou entitu pro dotaz. Je povolená pouze jedna entita. |
| link-entity | Spojí tabulku související s entitou nebo entitou propojení a vrátí další sloupce s výsledkem. |
Podřízené prvky
| Název | Výskyty | Description |
|---|---|---|
| all-attributes | 0 nebo 1 | Označuje, že se vrátí všechny hodnoty sloupců, které nejsou null pro každý řádek. Je to stejné, jako když nepřidávejte žádné prvky atributů. Tento prvek nedoporučujeme ve většině případů používat. |
| atribut | 0 nebo n | Určuje sloupec z entity nebo entity link-entity , který se má vrátit pomocí dotazu. |
| objednávka | 0 nebo n | Určuje pořadí řazení pro řádky výsledků. |
| link-entity | 0 nebo n | Spojí tabulku související s entitou nebo entitou propojení a vrátí další sloupce s výsledkem. |
| filtr | 0 nebo 1 | Zadejte složité podmínky pro entitu nebo entitu link-entity , které se mají použít pro dotaz. |