Элемент ComplexProperty (язык MSL)
Элемент ComplexProperty в языке MSL задает сопоставление между свойством сложного типа в типе сущности концептуальной модели и столбцами таблицы в основной базе данных. Сопоставления столбца свойств указаны в дочерних элементах ScalarProperty.
Свойство элемента ComplexType может иметь следующие дочерние элементы:
ScalarProperty (ноль и более)
ComplexProperty (нуль или более)
ComplextTypeMapping (ноль и более)
Condition (ноль и более)
Применимые атрибуты
В следующей таблице описываются атрибуты, которые применимы к элементу 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>
Свойства LastName и FirstName типа сущности Person были заменены одним сложным свойством 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>
В следующей спецификации 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
Моделирование и сопоставление (платформа Entity Framework)