Элемент CollectionType (язык CSDL)
Элемент CollectionType в языке CSDL указывает, что параметр функции или возвращаемый тип функции представляет собой коллекцию. Дополнительные сведения о функциях см. в разделе Элемент Function (язык CSDL). Элемент CollectionType может быть дочерним элементом элемента Parameter или элемента ReturnType. Тип коллекции может быть указан с использованием либо атрибута ElementType, либо одного из следующих дочерних элементов:
CollectionType
-
Примечание Модель не пройдет проверку, если тип коллекции будет указан и с атрибутом ElementType, и с дочерним элементом.
Применимые атрибуты
В следующей таблице описаны атрибуты, которые можно применить к элементу CollectionType. Обратите внимание, что атрибуты DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode и Collation применимы только к коллекциям EDMSimpleTypes. Дополнительные сведения см. в разделах Аспекты (модель CSDL) и Типы концептуальной модели.
Имя атрибута | Необходимо | Значение |
---|---|---|
ElementType |
Нет |
Тип коллекции. |
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 |
Нет |
Строка, указывающая последовательность сортировки, которая должна использоваться в источнике данных. |
Примечание |
---|
К элементу CollectionType может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать. |
Пример
В следующем примере показана функция, определяемая моделью, в которой используется элемент CollectionType для указания на то, что функция возвращает коллекцию типов сущностей Person (на что указывает атрибут ElementType).
<Function Name="LastNamesAfter">
<Parameter Name="someString" Type="Edm.String"/>
<ReturnType>
<CollectionType ElementType="SchoolModel.Person"/>
</ReturnType>
<DefiningExpression>
SELECT VALUE p
FROM SchoolEntities.People AS p
WHERE p.LastName >= someString
</DefiningExpression>
</Function>
В следующем примере показана функция, определяемая моделью, в которой используется элемент CollectionType для указания на то, что функция возвращает коллекцию строк (на что указывает элемент RowType).
<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>
В следующем примере показана функция, определяемая моделью, в которой используется элемент CollectionType для указания на то, что функция принимает в качестве параметра коллекцию типов сущностей Department.
<Function Name="GetAvgBudget">
<Parameter Name="Departments">
<CollectionType>
<TypeRef Type="SchoolModel.Department"/>
</CollectionType>
</Parameter>
<ReturnType Type="Collection(Edm.Decimal)"/>
<DefiningExpression>
SELECT VALUE AVG(d.Budget) FROM Departments AS d
</DefiningExpression>
</Function>
См. также
Основные понятия
Общие сведения о платформе Entity Framework
Спецификация языка CSDL
Элемент FunctionImport (язык CSDL)
Другие ресурсы
Спецификации языка CSDL, SSDL и MSL
ADO.NET Entity Data Model Tools