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


свойство

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

Примечание.

Свойства, как они описаны в этом разделе, отличаются от свойств навигации. Дополнительные сведения см. в разделе "Свойства навигации".

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

  • Имя свойства. (обязательно)

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

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

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

Примечание.

Сложный тип может сам по себе иметь свойства, которые являются сложными типами.

Пример

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

Example model with three entity types

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

См. также