Megosztás a következőn keresztül:


Kapcsolatok következtetése

Ha egy táblaként kikövetkeztetett elem tartalmaz egy gyermekelemet, amely szintén táblaként van kikövetkeztetve, a két tábla között létrejön egy DataRelation elem. A rendszer hozzáad egy új, ParentTableName_Id nevű oszlopot a szülőelemhez létrehozott táblához és a gyermekelemhez létrehozott táblához is. Az identitásoszlop ColumnMapping tulajdonsága MappingType.Hidden értékre lesz állítva. Az oszlop egy automatikusan növekvő elsődleges kulcs lesz a szülőtábla számára, és a két tábla közötti Adatrelációhoz lesz használva. A hozzáadott identitásoszlop adattípusa a System.Int32 lesz, ellentétben az összes többi kikövetkeztetett oszlop adattípusával, amely a System.String. A ForeignKeyConstraint DeleteRule = Kaszkádolt elem is létrejön a szülő- és gyermektáblák új oszlopával.

Vegyük például a következő XML-t:

<DocumentElement>  
  <Element1>  
    <ChildElement1 attr1="value1" attr2="value2"/>  
    <ChildElement2>Text2</ChildElement2>  
  </Element1>  
</DocumentElement>  

A következtetési folyamat két táblát hoz létre: Element1 és ChildElement1.

Az Element1 tábla két oszlopból áll: Element1_Id és ChildElement2. A Element1_Id oszlop ColumnMapping tulajdonsága MappingType.Hidden értékre lesz állítva. A ChildElement2 oszlop ColumnMapping tulajdonsága MappingType.Element értékre lesz állítva. A Element1_Id oszlop lesz az Elem1 tábla elsődleges kulcsa.

A ChildElement1 tábla három oszlopból áll: attr1, attr2 és Element1_Id. Az attr1 és attr2 oszlopok ColumnMapping tulajdonsága MappingType.Attribute értékre lesz állítva. A Element1_Id oszlop ColumnMapping tulajdonsága MappingType.Hidden értékre lesz állítva.

A dataRelation és a ForeignKeyConstraint a két tábla Element1_Id oszlopainak használatával jön létre.

Adatkészlet: DocumentElement

Táblázat: Elem1

Element1_Id ChildElement2
0 Szöveg2

Táblázat: ChildElement1

attr1 attr2 Element1_Id
érték1 érték2 0

DataRelation: Element1_ChildElement1

ParentTable: Element1

ParentColumn: Element1_Id

ChildTable: ChildElement1

ChildColumn: Element1_Id

Beágyazott: Igaz

ForeignKeyConstraint: Element1_ChildElement1

Oszlop: Element1_Id

ParentTable: Element1

ChildTable: ChildElement1

DeleteRule: Kaszkádolt

AcceptRejectRule: Nincs

Lásd még