ComplexProperty (Elemento) (MSL)
Un elemento ComplexProperty del lenguaje de especificación de asignaciones (MSL) define la asignación entre una propiedad de tipo complejo en un tipo de entidad del modelo conceptual y las columnas de la tabla de la base de datos subyacente. Las asignaciones entre columnas y propiedades se especifican en elementos secundarios ScalarProperty.
El elemento de propiedad ComplexType puede tener los elementos secundarios siguientes:
ScalarProperty (cero o más)
ComplexProperty (cero o más)
ComplextTypeMapping (cero o más)
Condition (cero o más)
Atributos aplicables
En la tabla siguiente se describen los atributos aplicables al elemento ComplexProperty:
Nombre de atributo | Es necesario | Valor |
---|---|---|
Name |
Sí |
El nombre de la propiedad compleja de un tipo de entidad del modelo conceptual que se está asignando. |
TypeName |
No |
El nombre completo, calificado con el espacio de nombres, del tipo de propiedad del modelo conceptual. |
Ejemplo
El siguiente ejemplo se basa en el modelo School. El siguiente tipo complejo se ha agregado al modelo conceptual:
<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>
Las propiedades LastName y FirstName del tipo de entidad Person han sido reemplazadas por una propiedad compleja, 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>
El siguiente MSL muestra el elemento ComplexProperty utilizado para asignar la propiedad Name a las columnas de la base de datos subyacente:
<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>
Vea también
Otros recursos
Especificaciones CSDL, SSDL y MSL
Modelado y asignación (Entity Framework)