Поделиться через


facet

Аспект используется для добавления сведений в определение свойства примитивного типа. Определение свойства содержит сведения о типе свойства , но часто требуется более подробная информация. Например, тип сущности в концептуальной модели может иметь свойство типа String, значение которого не может быть равно NULL. Аспекты позволяют задавать такой уровень сведений.

В следующей таблице описываются аспекты, поддерживаемые в модели EDM.

Примечание.

Точные значения и поведения аспектов определяются средой выполнения, использующей реализацию модели EDM.

Аспект Description Применяется к
Collation Задает последовательность сортировки, которая будет использоваться при выполнении операций сравнения и упорядочивания для значений свойств. String
ConcurrencyMode Указывает, что значение свойства должно использоваться в проверках оптимистического управления параллелизмом. Все свойства примитивного типа
Default Задает значение по умолчанию для свойства в случае, если при создании экземпляра не было задано значение. Все свойства примитивного типа
FixedLength Указывает, может ли изменяться длина значения свойства. Binary, String
MaxLength Указывает максимальную длину значения свойства. Binary, String
Nullable Задает, может ли свойство принимать значение NULL. Все свойства примитивного типа
Precision Для свойств типа Decimal задается число цифр, которое может иметь значение свойства. Для свойств типа Time, DateTime и DateTimeOffset задается число цифр для части долей секунды значения свойства. DateTime, , DateTimeOffsetDecimal, Time
Scale Задает число цифр справа от десятичной запятой в значении свойства. Десятичное число
Unicode Указывает, будет ли значение свойства храниться в Юникоде. String

Пример

В ADO.NET Entity Framework используется язык, зависящий от домена (DSL), называемый языком определения концептуальной схемы (CSDL) для определения концептуальных моделей. Далее на языке CSDL определяется тип сущности Book. Обратите внимание, что аспекты реализуются как атрибуты XML. Значения аспекта указывают, что свойство не может быть задано со значением NULL и что свойства Scale и PrecisionRevision имеют каждый значение 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>

См. также