共用方式為


在巢狀結構描述項目之間進行隱含關聯對應

XML 結構描述定義語言 (XSD) 結構描述可以是互呈巢狀的複雜型別。 在這樣的情況下,對應處理序會在 DataSet 內套用預設對應並建立下列各項:

  • 為每個複雜型別 (父和子) 建立一個資料表。

  • 如果父代上不存在唯一限制式,則會有每個資料表定義的一個額外主索引鍵資料行,其命名為 TableName_Id,其中 TableName 是父資料表的名稱。

  • 父資料表上將額外資料行識別為主索引鍵的主索引鍵限制式 (將 IsPrimaryKey 屬性設定為 True)。 此限制式的名稱為 Constraint#,其中 # 為 1、2、3 等。 例如,第一個條件約束的預設名稱是 Constraint1。

  • 子資料表中的外部索引鍵條件約束將另一個資料行識別為外部索引鍵,此外部索引鍵參考至父資料表的主索引鍵。 該限制式命名為 ParentTable_ChildTable,其中,ParentTable 是父資料表的名稱,而 ChildTable 是子資料表的名稱。

  • 父資料表和子資料表間的資料關聯。

下列範例顯示結構描述,其中 OrderDetailOrder 的子元素。

<xs:schema id="MyDataSet" xmlns=""
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">  
  
 <xs:element name="MyDataSet" msdata:IsDataSet="true">  
   <xs:complexType>  
     <xs:choice maxOccurs="unbounded">  
       <xs:element name="Order">  
         <xs:complexType>  
          <xs:sequence>  
            <xs:element name="OrderNumber" type="xs:string" />  
            <xs:element name="EmpNumber" type="xs:string" />  
            <xs:element name="OrderDetail">  
              <xs:complexType>  
                <xs:sequence>  
                  <xs:element name="OrderNo" type="xs:string" />  
                  <xs:element name="ItemNo" type="xs:string" />  
                </xs:sequence>  
              </xs:complexType>  
            </xs:element>  
          </xs:sequence>  
         </xs:complexType>  
       </xs:element>  
     </xs:choice>  
   </xs:complexType>  
  </xs:element>  
</xs:schema>  

XML 結構描述對應處理序會在 DataSet 中建立下列項目:

  • OrderOrderDetail 資料表。

    Order(OrderNumber, EmpNumber, Order_Id)  
    OrderDetail(OrderNo, ItemNo, Order_Id)  
    
  • Order 資料表上的唯一限制式。 請注意,IsPrimaryKey 屬性設定為 True

    ConstraintName: Constraint1  
    Type: UniqueConstraint  
    Table: Order  
    Columns: Order_Id
    IsPrimaryKey: True  
    
  • OrderDetail 資料表上的外部索引鍵限制式。

    ConstraintName: Order_OrderDetail  
    Type: ForeignKeyConstraint  
    Table: OrderDetail  
    Columns: Order_Id
    RelatedTable: Order  
    RelatedColumns: Order_Id
    
  • OrderOrderDetail 資料表之間的關聯性。 此關聯性的 Nested 屬性設定為 True,因為 OrderOrderDetail 元素會巢狀化至結構描述。

    ParentTable: Order  
    ParentColumns: Order_Id
    ChildTable: OrderDetail  
    ChildColumns: Order_Id
    ParentKeyConstraint: Constraint1  
    ChildKeyConstraint: Order_OrderDetail  
    RelationName: Order_OrderDetail  
    Nested: True  
    

另請參閱