共用方式為


ComplexProperty 項目 (MSL)

對應規格語言 (MSL) 中的 ComplexProperty 項目會定義概念模型實體類型上的複雜型別屬性和基礎資料庫中的資料表資料行間的對應。屬性資料行對應會在 ScalarProperty 子項目中指定。

ComplexType 屬性項目可以擁有下列子項目:

適用屬性

下表描述可套用至 ComplexProperty 項目的屬性。

屬性名稱

必要

Name

概念模型中要對應的實體類型之複雜屬性的名稱。

TypeName

概念模型屬性類型的命名空間限定名稱。

範例

下列範例是以 School 模型為基礎。下列複雜型別已加入至概念模型:

<ComplexType Name="FullName">
  <Property Type="String" Name="LastName" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" />
  <Property Type="String" Name="FirstName" Nullable="false" MaxLength="50" FixedLength="false" Unicode="true" />
</ComplexType>
<ComplexType Name="FullName">
  <Property Type="String" Name="LastName" 
            Nullable="false" MaxLength="50" 
            FixedLength="false" Unicode="true" />
  <Property Type="String" Name="FirstName" 
            Nullable="false" MaxLength="50" 
            FixedLength="false" Unicode="true" />
</ComplexType>

Person 實體類型的 LastName 和 FirstName 屬性已使用某一複雜屬性 Name 加以取代:

<EntityType Name="Person">
  <Key>
    <PropertyRef Name="PersonID" />
  </Key>
  <Property Name="PersonID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
  <Property Name="HireDate" Type="DateTime" />
  <Property Name="EnrollmentDate" Type="DateTime" />
  <Property Name="Name" Type="SchoolModel.FullName" Nullable="false" />
</EntityType>
<EntityType Name="Person">
  <Key>
    <PropertyRef Name="PersonID" />
  </Key>
  <Property Name="PersonID" Type="Int32" Nullable="false" 
            annotation:StoreGeneratedPattern="Identity" />
  <Property Name="HireDate" Type="DateTime" />
  <Property Name="EnrollmentDate" Type="DateTime" />
  <Property Name="Name" Type="SchoolModel.FullName" Nullable="false" />
</EntityType>

下列 MSL 顯示的 ComplexProperty 項目用來將 Name 屬性對應至基礎資料庫中的資料行:

<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="SchoolModel.Person">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <ScalarProperty Name="EnrollmentDate" ColumnName="EnrollmentDate" />
      <ComplexProperty Name="Name" TypeName="SchoolModel.FullName">
        <ScalarProperty Name="FirstName" ColumnName="FirstName" />
        <ScalarProperty Name="LastName" ColumnName="LastName" />  
      </ComplexProperty>
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

請參閱

其他資源

CSDL、SSDL 和 MSL 規格

模型化及對應檔案