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


Элемент Property (CSDL)

Элемент Property в языке CSDL может быть дочерним по отношению к элементу EntityType, ComplexType или RowType.

Применение элементов EntityType и ComplexType

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

Элемент Property может иметь следующие дочерние элементы (в порядке перечисления).

  • Элемент Documentation (допускается ровно один элемент либо элемент может отсутствовать)

  • Элементы Annotation (допустимое количество элементов — ноль или больше)

К элементу Property могут быть применены следующие аспекты: Nullable, DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode, Collation, ConcurrencyMode. Аспекты представляют собой атрибуты XML, которые предоставляют сведения о том, как значения свойств хранятся в хранилище данных. Дополнительные сведения см. в разделе Аспекты (модель CSDL).

Bb399546.note(ru-ru,VS.100).gifПримечание
Аспекты можно применять только к свойствам типа EDMSimpleType.Дополнительные сведения см. в разделе Типы концептуальной модели.

Применимые атрибуты

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

Имя атрибута Необходимо Значение

Name

Да

Имя свойства.

Type

Да

Тип значения свойства. Тип значения свойства должен относиться к типу EDMSimpleType или сложному типу (обозначенному полным именем), который находится в пределах области модели. Дополнительные сведения см. в разделе Типы концептуальной модели.

Nullable

Нет

True (значение по умолчанию) или False в зависимости от того, может ли свойство иметь значение NULL.

Bb399546.note(ru-ru,VS.100).gifПримечание
В версии языка CSDL, обозначенной пространством имен https://schemas.microsoft.com/ado/2006/04/edm, свойство сложного типа должно иметь значение Nullable="False".

DefaultValue

Нет

Значение свойства по умолчанию.

MaxLength

Нет

Максимальная длина значения свойства.

FixedLength

Нет

True или False, в зависимости от того, будет ли значение свойства храниться как строка постоянной длины.

Precision

Нет

Точность значения свойства.

Scale

Нет

Масштаб значения свойства.

Unicode

Нет

True или False, в зависимости от того, будет ли значение свойства храниться как строка в Юникоде.

Collation

Нет

Строка, указывающая последовательность сортировки, которая должна использоваться в источнике данных.

ConcurrencyMode

Нет

None (значение по умолчанию) или Fixed. Если это значение равно Fixed, то значение свойства будет использоваться в проверках оптимистичного параллелизма.

Bb399546.note(ru-ru,VS.100).gifПримечание
К элементу Property может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать.

Пример

В следующем примере рассматривается элемент EntityType с тремя элементами Property.

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

В следующем примере рассматривается элемент ComplexType с пятью элементами Property.

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

Применение элемента RowType

Элементы Property (будучи дочерними по отношению к элементу RowType) определяют вид и характеристики данных, которые могут передаваться в функцию, определяемую моделью, или возвращаться из нее. Дополнительные сведения см. в разделе Элемент Function (язык CSDL).

Элемент Property может иметь ровно один из следующих дочерних элементов:

Элемент Property может иметь любое количество дочерних элементов annotation.

Bb399546.note(ru-ru,VS.100).gifПримечание
Элементы annotation допускаются только в концептуальных моделях для приложений, которые предназначены для версии .NET Framework 4 или более поздней.Пространством имен XML для таких моделей является https://schemas.microsoft.com/ado/2008/09/edm.

Применимые атрибуты

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

Имя атрибута Необходимо Значение

Name

Да

Имя свойства.

Type

Да

Тип значения свойства.

Nullable

Нет

True (значение по умолчанию) или False в зависимости от того, может ли свойство иметь значение NULL.

Bb399546.note(ru-ru,VS.100).gifПримечание
В версии языка CSDL, обозначенной пространством имен https://schemas.microsoft.com/ado/2006/04/edm, свойство сложного типа должно иметь значение Nullable="False".

DefaultValue

Нет

Значение свойства по умолчанию.

MaxLength

Нет

Максимальная длина значения свойства.

FixedLength

Нет

True или False, в зависимости от того, будет ли значение свойства храниться как строка постоянной длины.

Precision

Нет

Точность значения свойства.

Scale

Нет

Масштаб значения свойства.

Unicode

Нет

True или False, в зависимости от того, будет ли значение свойства храниться как строка в Юникоде.

Collation

Нет

Строка, указывающая последовательность сортировки, которая должна использоваться в источнике данных.

Bb399546.note(ru-ru,VS.100).gifПримечание
К элементу Property может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать.

Пример

В следующем примере показаны элементы Property, используемые для определения вида возвращаемого типа функции, определяемой моделью.

<Function Name="LastNamesAfter">
  <Parameter Name="someString" Type="Edm.String" />
  <ReturnType>
   <CollectionType>
     <RowType>
       <Property Name="FirstName" Type="Edm.String" Nullable="false" />
       <Property Name="LastName" Type="Edm.String" Nullable="false" />
     </RowType>
   </CollectionType>
  </ReturnType>
  <DefiningExpression>
            SELECT VALUE ROW(p.FirstName, p.LastName)
            FROM SchoolEntities.People AS p
            WHERE p.LastName &gt;= somestring
  </DefiningExpression>
</Function>

См. также

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

Общие сведения о платформе Entity Framework
Спецификация языка CSDL
Элемент Schema (CSDL)
Элемент FunctionImport (язык CSDL)

Другие ресурсы

Спецификации языка CSDL, SSDL и MSL
ADO.NET Entity Data Model Tools
property (Entity Data Model)
facet (Entity Data Model)