аспект (модель EDM)
Аспект используется для добавления сведений в определение свойств примитивного типа. Определение свойства содержит информацию о типе свойства, однако зачастую требуется больше сведений. Например, тип сущности в концептуальной модели может иметь свойство типа String, значение которого не может быть равно NULL. Аспекты позволяют задавать такой уровень сведений.
В следующей таблице описываются аспекты, поддерживаемые в модели EDM.
Примечание |
---|
Точные значения и поведения аспектов определяются средой выполнения, использующей реализацию модели EDM. |
Аспект | Описание | Применимость |
---|---|---|
Collation |
Задает последовательность сортировки, которая будет использоваться при выполнении операций сравнения и упорядочивания для значений свойств. |
String |
ConcurrencyMode |
Указывает, что значение свойства должно использоваться в проверках оптимистического управления параллелизмом. |
Все свойства примитивного типа |
Default |
Задает значение по умолчанию для свойства в случае, если при создании экземпляра не было задано значение. |
Все свойства примитивного типа |
FixedLength |
Указывает, может ли изменяться длина значения свойства. |
Binary, String |
MaxLength |
Указывает максимальную длину значения свойства. |
Binary, String |
Nullable |
Задает, может ли свойство принимать значение NULL. |
Все свойства примитивного типа |
Precision |
Для свойств типа Decimal задается число цифр, которое может иметь значение свойства. Для свойств типа Time, DateTime и DateTimeOffset задается число цифр для части долей секунды значения свойства. |
DateTime, DateTimeOffset, Decimal, Time, |
Scale |
Задает число цифр справа от десятичной запятой в значении свойства. |
Decimal |
Unicode |
Указывает будет ли значение свойства храниться в Юникоде. |
String |
Пример
Платформа ADO.NET Entity Framework использует доменный язык DSL, называемый языком CSDL (CSDL), для определения концептуальных моделей. Далее на языке CSDL определяется тип сущности Book. Обратите внимание, что аспекты реализуются как атрибуты XML. Значения аспекта указывают, что свойство не может быть задано со значением NULL и что свойства Scale и Precision Revision имеют каждый значение 29.
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>