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


грань

Аспект используется для добавления сведений в определение свойства примитивного типа. Определение свойства содержит сведения о типе свойства, но часто требуется более подробная информация. Например, тип сущности в концептуальной модели может иметь свойство типа 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 Указывает число цифр справа от десятичной запятой для значения свойства. Десятичное число
Unicode Указывает, хранится ли значение свойства в юникоде. String

Пример

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

См. также