Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Si un élément déduit comme une table a un élément enfant qui est également déduit comme une table, un DataRelation sera créé entre les deux tables. Une nouvelle colonne portant un nom sera ParentTableName_Id ajoutée à la fois à la table créée pour l’élément parent et à la table créée pour l’élément enfant. La ColumnMapping propriété de cette colonne d’identité est définie sur MappingType.Hidden. La colonne sera une clé primaire auto-incrémentée pour la table parente et sera utilisée pour le DataRelation entre les deux tables. Le type de données de la colonne d’identité ajoutée est System.Int32, contrairement au type de données de toutes les autres colonnes déduites, qui est System.String. Une ForeignKeyConstraint avec DeleteRule = Cascade sera également créée à l’aide de la nouvelle colonne dans les tables parent et enfant.
Par exemple, considérez le code XML suivant :
<DocumentElement>
<Element1>
<ChildElement1 attr1="value1" attr2="value2"/>
<ChildElement2>Text2</ChildElement2>
</Element1>
</DocumentElement>
Le processus d’inférence produit deux tables : Element1 et ChildElement1.
La table Element1 comporte deux colonnes : Element1_Id et ChildElement2. La ColumnMapping propriété de la colonne Element1_Id est définie sur MappingType.Hidden. La ColumnMapping propriété de la colonne ChildElement2 est définie sur MappingType.Element. La colonne Element1_Id sera définie comme clé primaire de la table Element1 .
La table ChildElement1 comporte trois colonnes : attr1, attr2 et Element1_Id. La ColumnMapping propriété des colonnes attr1 et attr2 est définie sur MappingType.Attribute. La ColumnMapping propriété de la colonne Element1_Id est définie sur MappingType.Hidden.
A DataRelation et ForeignKeyConstraint seront créés à l’aide des colonnes Element1_Id des deux tables.
Jeu de données: DocumentElement
Table: Élément1
| Element1_Id | ChildElement2 |
|---|---|
| 0 | Texte2 |
Table: ChildElement1
| attr1 | attr2 | Element1_Id |
|---|---|---|
| valeur1 | valeur2 | 0 |
DataRelation : Element1_ChildElement1
ParentTable : Élément1
ParentColumn : Element1_Id
ChildTable : ChildElement1
ChildColumn : Element1_Id
Nested : True
ForeignKeyConstraint : Element1_ChildElement1
Colonne: Element1_Id
ParentTable : Élément1
ChildTable : ChildElement1
DeleteRule : Cascade
AcceptRejectRule : Aucun