Элемент 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).
![]() |
---|
Аспекты можно применять только к свойствам типа EDMSimpleType.Дополнительные сведения см. в разделе Типы концептуальной модели. |
Применимые атрибуты
В следующей таблице описываются атрибуты, которые можно применить к элементу Property.
Имя атрибута | Необходимо | Значение |
---|---|---|
Name |
Да |
Имя свойства. |
Type |
Да |
Тип значения свойства. Тип значения свойства должен относиться к типу EDMSimpleType или сложному типу (обозначенному полным именем), который находится в пределах области модели. Дополнительные сведения см. в разделе Типы концептуальной модели. |
Nullable |
Нет |
True (значение по умолчанию) или False в зависимости от того, может ли свойство иметь значение NULL. ![]()
В версии языка 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, то значение свойства будет использоваться в проверках оптимистичного параллелизма. |
![]() |
---|
К элементу 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.
![]() |
---|
Элементы annotation допускаются только в концептуальных моделях для приложений, которые предназначены для версии .NET Framework 4 или более поздней.Пространством имен XML для таких моделей является https://schemas.microsoft.com/ado/2008/09/edm. |
Применимые атрибуты
В следующей таблице описываются атрибуты, которые можно применить к элементу Property.
Имя атрибута | Необходимо | Значение |
---|---|---|
Name |
Да |
Имя свойства. |
Type |
Да |
Тип значения свойства. |
Nullable |
Нет |
True (значение по умолчанию) или False в зависимости от того, может ли свойство иметь значение NULL. ![]()
В версии языка CSDL, обозначенной пространством имен https://schemas.microsoft.com/ado/2006/04/edm, свойство сложного типа должно иметь значение
Nullable="False" .
|
DefaultValue |
Нет |
Значение свойства по умолчанию. |
MaxLength |
Нет |
Максимальная длина значения свойства. |
FixedLength |
Нет |
True или False, в зависимости от того, будет ли значение свойства храниться как строка постоянной длины. |
Precision |
Нет |
Точность значения свойства. |
Scale |
Нет |
Масштаб значения свойства. |
Unicode |
Нет |
True или False, в зависимости от того, будет ли значение свойства храниться как строка в Юникоде. |
Collation |
Нет |
Строка, указывающая последовательность сортировки, которая должна использоваться в источнике данных. |
![]() |
---|
К элементу 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 >= 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)