Делите путем


Елемент линк-ентитета

Придружује се табели која се односи на ентитет или ентитет везе да врати додатне колоне са резултатом. Такође се користи са елементима филтера за примену услова на вредности колона у сродним табелама .

Научите како да се придружите табелама користећи ФетцхКСМЛ .

Примери

Следећи примери показују коришћење link-entity са различитим врстама односа.

Однос многи-на-један

Овај упит враћа податке из табела рачуна и контаката на основу колоне за претрагу ПримариЦонтацтИд у запису налога:

<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>

Однос један-на-више

Овај упит враћа податке из табела контаката и налога на основу односа Контакт аццоунт_примарy_цонтацт један-на-више.

<fetch>
  <entity name='contact'>
    <attribute name='fullname' />
    <link-entity name='account' 
     from='primarycontactid' 
     to='contactid' 
     alias='account'>
      <attribute name='name' />
    </link-entity>
  </entity>
</fetch>

Однос многи-на-много

Овај упит враћа податке из табела СистемУсер и Теам користећи однос теаммемберсхип_ассоциатион манy-то-мани .

<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 Представља име повезане табеле. Ако не подесите алиас, један ће бити генерисан за вас да би се осигурало да све колоне имају јединствена имена, али нећете моћи да користите тај алиас да упућујете на ентитет везе у другим деловима XМЛ-а за дохваћање. Аутоматски генерисани алиаси користе образац {LogicalName}+{N}, где N је секвенцијални број линк-ентитета у преузимању КСМЛ почевши од 1.
link-type No Врста употребе везе. Подразумевано понашање је унутрашње . Сазнајте више о опцијама типа везе
intersect No Означава да се користи link-entity за спајање табела и не враћа никакве колоне, обично за однос више-на-више. Постојање овог атрибута не мења извршење упита. Можете додати овај атрибут у свој link-entity када се придружите табели, али не укључите никакве елементе атрибута да бисте показали да је то намерно.

Коришћење from и атрибути to

Најбоље је да подесите вредности и за атрибуте from и to . Оба ова атрибута се обично користе за експлицитно дефинисање колона које се подударају. Међутим , from и атрибути нису to технички потребни.

Белешка

Ако не користите ниједан од ових атрибута, а између две табеле постоји системски однос више на многе, Датаверсе бира одговарајуће кључне вредности користећи тај однос.

Ако наведете само један од fromto или атрибута, Датаверсе покушава да схвати исправан однос користећи дефиниције шеме односа између две табеле.

У супротном ћете добити следећу грешку:

Шифру: 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.

На пример, оба ова упита користе теаммемберсхип_ассоциатион однос мани-на-манy између системусер и тимских табела. У овом случају, Датаверсе може да разради 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>

Нека Датаверсе изабере

<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 тога може да обезбеди предности перформанси. Користи услов ЕXИСТС у реченици where . Користите ово када више копија надређеног реда није неопходно у резултатима. Сазнајте више о постоји и у
in Варијанта inner тога може да обезбеди предности перформанси. Користи ИН услов у реченици where . Користите ово када више копија надређеног реда није неопходно у резултатима. Сазнајте више о постоји и у
matchfirstrowusingcrossapply Варијанта inner тога може да обезбеди предности перформанси. Користите овај тип када је довољан само један пример одговарајућег реда из повезаног ентитета и више копија родитељског реда у резултатима није потребно. Сазнајте више о матцхфирстроwусингцроссапплy

Родитељски елементи

Именуј Опис
Ентитета Специфицира потомак елемент за фетцх елемент , 'родитељски ентитет' за упит. Дозвољен је само један ентитет.
Линк-ентитет Придружује се табели која се односи на ентитет или ентитет везе да би вратио више колона са резултатом.

Дечји елементи

Именуј Појављивања Опис
Све-атрибути 0 или 1 Означава да се враћају све вредности колоне које нису нулте за сваки ред. То је исто као да не додајете никакве елементе атрибута . Не препоручујемо коришћење овог елемента у већини случајева.
Атрибут 0 или много Одређује колону из ентитета или ентитета везе да се врати са упитом.
Поруџбине 0 или много Одређује редослед сортирања за редове резултата.
Линк-ентитет 0 или много Придружује се табели која се односи на ентитет или ентитет везе да би вратио више колона са резултатом.
Филтер 0 или 1 Наведите сложене услове за ентитет или ентитет везе који ће се применити на упит.