共用方式為


推斷關聯性

若被推斷為資料表的項目具有項目子系,且項目子系也被推斷為資料表,則兩個資料表間會建立 DataRelation。這時,名為 ParentTableName_Id 的新資料行會被加入為父項目建立的資料表,以及為項目子系建立的資料表。這個識別資料行的 ColumnMapping 屬性會被設定為 MappingType.Hidden。該資料行將成為父資料表的自動遞增主索引鍵,且會用於兩個資料表間的 DataRelation。加入的識別資料行的資料型別將是 System.Int32,而其他所有推斷資料行的資料型別是 System.String。也會使用父資料表和子資料表中的新資料行,建立 DeleteRule = CascadeForeignKeyConstraint

例如,請考量下列 XML:

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

推斷處理序會產生兩個資料表:Element1ChildElement1

Element1 資料表會有兩個資料行:Element1_IdChildElement2Element1_Id 資料行的 ColumnMapping 屬性會設定為 MappingType.HiddenChildElement2 資料行的 ColumnMapping 屬性會設定為 MappingType.ElementElement1_Id 資料行將設為 Element1 資料表的主索引鍵。

ChildElement1 資料表會有三個資料行:attr1attr2Element1_Idattr1attr2ColumnMapping 屬性會被設定為 MappingType.AttributeElement1_Id 資料行的 ColumnMapping 屬性會設定為 MappingType.Hidden

DataRelationForeignKeyConstraint 則會使用兩個資料表的 Element1_Id 資料行建立。

DataSet: DocumentElement

Table: Element1

Element1_Id ChildElement2

0

Text2

Table: ChildElement1

attr1 attr2 Element1_Id

value1

value2

0

DataRelation: Element1_ChildElement1

ParentTable: Element1

ParentColumn: Element1_Id

ChildTable: ChildElement1

ChildColumn: Element1_Id

Nested: True

ForeignKeyConstraint: Element1_ChildElement1

Column: Element1_Id

ParentTable: Element1

ChildTable: ChildElement1

DeleteRule: Cascade

AcceptRejectRule: None

請參閱

概念

從 XML 載入 DataSet
從 XML 載入 DataSet 結構描述資訊
巢狀 DataRelation

其他資源

從 XML 推斷 DataSet 關聯式結構
在 DataSet 中使用 XML
使用 ADO.NET 中的 DataSets