facet
Аспект используется для добавления сведений в определение свойства примитивного типа. Определение свойства содержит сведения о типе свойства , но часто требуется более подробная информация. Например, тип сущности в концептуальной модели может иметь свойство типа String
, значение которого не может быть равно NULL. Аспекты позволяют задавать такой уровень сведений.
В следующей таблице описываются аспекты, поддерживаемые в модели EDM.
Примечание.
Точные значения и поведения аспектов определяются средой выполнения, использующей реализацию модели EDM.
Аспект | Description | Применяется к |
---|---|---|
Collation |
Задает последовательность сортировки, которая будет использоваться при выполнении операций сравнения и упорядочивания для значений свойств. | String |
ConcurrencyMode |
Указывает, что значение свойства должно использоваться в проверках оптимистического управления параллелизмом. | Все свойства примитивного типа |
Default |
Задает значение по умолчанию для свойства в случае, если при создании экземпляра не было задано значение. | Все свойства примитивного типа |
FixedLength |
Указывает, может ли изменяться длина значения свойства. | Binary , String |
MaxLength |
Указывает максимальную длину значения свойства. | Binary , String |
Nullable |
Задает, может ли свойство принимать значение NULL. | Все свойства примитивного типа |
Precision |
Для свойств типа Decimal задается число цифр, которое может иметь значение свойства. Для свойств типа Time , DateTime и DateTimeOffset задается число цифр для части долей секунды значения свойства. |
DateTime , , DateTimeOffset Decimal , Time |
Scale |
Задает число цифр справа от десятичной запятой в значении свойства. | Десятичное число |
Unicode |
Указывает, будет ли значение свойства храниться в Юникоде. | String |
Пример
В ADO.NET Entity Framework используется язык, зависящий от домена (DSL), называемый языком определения концептуальной схемы (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>