Elemento ComplexProperty (MSL)
Un elemento ComplexProperty in MSL (Mapping Specification Language) definisce il mapping tra una proprietà del tipo complesso su un tipo di entità del modello concettuale e le colonne della tabella nel database sottostante. I mapping delle colonne delle proprietà sono specificati in elementi ScalarProperty figlio.
L'elemento proprietà ComplexType può includere gli elementi figlio seguenti:
ScalarProperty (zero o più elementi)
ComplexProperty (zero o più elementi)
ComplextTypeMapping (zero o più elementi)
Condition (zero o più elementi)
Attributi applicabili
Nella tabella riportata di seguito vengono descritti gli attributi applicabili all'elemento ComplexProperty:
Nome attributo | È obbligatorio | Valore |
---|---|---|
Name |
Sì |
Nome della proprietà complessa di un tipo di entità nel modello concettuale di cui è in corso il mapping. |
TypeName |
No |
Nome qualificato di spazio dei nomi del tipo di proprietà del modello concettuale. |
Esempio
Di seguito viene riportato un esempio basato sul modello School. Il tipo complesso seguente è stato aggiunto al modello concettuale:
<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>
Le proprietà LastName e FirstName del tipo di entità Person sono state sostituite con una proprietà complessa, 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>
Nel seguente MSL viene mostrato l'elemento ComplexProperty utilizzato per eseguire il mapping della proprietà Name alle colonne nel database sottostante:
<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>
Vedere anche
Altre risorse
Specifiche CSDL, SSDL e MSL
Modellazione e mapping (Entity Framework)