ComplexProperty-Element (MSL)

Das ComplexProperty-Element der Mapping-Spezifikationssprache (Mapping Specification Language, MSL) definiert die Zuordnung einer komplexen Typeigenschaft eines Entitätstyp des konzeptionellen Modells zu den Tabellenspalten in der zugrunde liegenden Datenbank. Die Zuordnungen zu Eigenschaftenspalten sind in einem untergeordneten ScalarProperty-Element angegeben.

Die ComplexType-Eigenschaft kann die folgenden untergeordneten Elemente aufweisen:

Anwendbare Attribute

In der folgenden Tabelle werden die Attribute beschrieben, die auf das ComplexProperty-Element anwendbar sind:

Attributname Ist erforderlich Wert

Name

Ja

Der Name der komplexen Eigenschaft eines Entitätstyps im konzeptionellen Modell, die zugeordnet wird.

TypeName

Nein

Der mit einem Namespace qualifizierte Name des Eigenschaftentyps im konzeptionellen Modell.

Beispiel

Das folgende Beispiel beruht auf dem School-Modell. Dem konzeptionellen Modell wurde der folgende komplexe Typ hinzugefügt:

<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>

Die Eigenschaften LastName und FirstName des Person-Entitätstyps wurden durch die komplexe Eigenschaft Name ersetzt:

<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>

Der folgende MSL-Code zeigt das ComplexProperty-Element, das verwendet wurde, um die Name-Eigenschaft den Spalten in der zugrunde liegenden Datenbank zuzuordnen:

<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>

Siehe auch

Weitere Ressourcen

CSDL-, SSDL- und MSL-Spezifikationen
Modellieren und Zuordnen (Entity Framework)