свойство (модель EDM)

Свойства — это фундаментальные блоки построения типов сущностей и сложных типов. Свойства определяют форму и характеристики данных, которые экземпляр типа сущности или сложного типа будет содержать. Свойства в концептуальной модели аналогичны свойствам, которые определены применительно к классу. По такому же принципу, как свойства, относящиеся к классу, определяют форму класса и несут информацию об объектах, свойства в концептуальной модели определяют форму типа сущности и несут информацию об экземплярах типа сущности.

Ee382838.note(ru-ru,VS.100).gifПримечание
Свойства, как они описаны в этом разделе, отличаются от свойств навигации.Дополнительные сведения см. в разделе свойства навигации.

Определение свойства содержит следующую информацию.

  • Имя свойства. (Обязательный атрибут).

  • Тип свойства. (Обязательный атрибут).

  • Набор аспектов. (Необязательный параметр)

Свойство может содержать примитивные данные (такие как строка, целое число, логическое значение) или структурированные данные (такие как сложный тип). Свойства примитивного типа также называются скалярными свойствами. Дополнительные сведения см. в разделе Модель EDM. Примитивные типы данных.

Ee382838.note(ru-ru,VS.100).gifПримечание
Сложный тип может сам по себе иметь свойства, которые являются сложными типами.

Пример

На приведенной ниже схеме показана концептуальная модель с тремя типами сущностей: Book, Publisher и Author. Каждый тип сущности имеет несколько свойств, однако сведений о типе для каждого свойства в схеме не содержится. Свойства, являющиеся ключами сущностей, обозначаются знаком (Ключ).

Модель примера

Платформа ADO.NET Entity Framework использует доменный язык DSL, называемый языком CSDL (CSDL), для определения концептуальных моделей. Далее на языке CSDL определяется тип сущности Book (как показано на схеме выше), и при помощи атрибутов XML указываются тип и имя каждого свойства. Дополнительный аспект, Nullable, также определяется при помощи атрибута XML.

<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>

Ни одно из свойств на схеме не может быть свойством сложного типа. Например, свойство Address в типе сущности Publisher может быть свойством сложного типа, состоящего из нескольких скалярных свойств, таких как StreetAddress, City, StateOrProvince, Country и PostalCode. Представление такого сложного типа на языке CSDL может быть следующим.

<ComplexType Name="Address" >
  <Property Type="String" Name="StreetAddress" Nullable="false" />
  <Property Type="String" Name="City" Nullable="false" />
  <Property Type="String" Name="StateOrProvince" Nullable="false" />
  <Property Type="String" Name="Country" Nullable="false" />
  <Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>

См. также

Основные понятия

Основные понятия модели EDM
модель Entity Data