Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определение типа используется в инструкции объявления функции Entity SQL Inline.
Замечания
Оператор объявления встроенной функции состоит из ключевого слова FUNCTION , за которым следует идентификатор, представляющий имя функции (например, MyAvg), за которым следует список определений параметров в скобках (например, "dues Collection(Decimal)").
Список определений параметров состоит из нулевых или более определений параметров. Каждое определение параметра состоит из идентификатора (имя параметра функции, например "dues"), за которым следует определение типа (например, Collection(Decimal)).
Определения типов могут быть следующими:
Тип идентификатора (например, Int32 или AdventureWorks.Order).
Ключевое слово
COLLECTION, за которым следует другое определение типа в скобках (например, Collection(AdventureWorks.Order)).Ключевое слово ROW, за которым следует список определений свойств в скобках (например, Row(x AdventureWorks.Order)). Определения свойств имеют такой формат, как "
identifier type_definition,identifier type_definition..." .Ключевое слово REF, за которым следует тип идентификатора в скобках (например, "Ref(AdventureWorks.Order)"). Оператор определения типов REF требует типа сущности в качестве аргумента. В качестве аргумента нельзя указать примитивный тип.
Можно также вложить определения типов (например, Collection(Row(x Ref(AdventureWorks.Order))).
Параметры определения типа:
IdentifierName supported_type, илиIdentifierNameCOLLECTION(type_definition) илиIdentifierNameROW(property_definition) илиIdentifierNameREF(supported_entity_type)
Параметр определения свойства имеет значение IdentifierName type_definition.
Поддерживаемые типы — это любые типы в текущем пространстве имен. К ним относятся как примитивные, так и типы сущностей.
Поддерживаемые типы сущностей относятся только к типам сущностей в текущем пространстве имен. Они не включают примитивные типы.
Примеры
Ниже приведен пример простого определения типа.
USING Microsoft.Samples.Entity
Function MyRound(p1 EDM.Decimal) AS (
Round(p1)
)
MyRound(CAST(1.7 as EDM.Decimal))
Ниже приведен пример определения типа COLLECTION.
USING Microsoft.Samples.Entity
Function MyRound(p1 Collection(EDM.Decimal)) AS (
Select Round(p1) from p1
)
MyRound({CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)})
Ниже приведен пример определения типа ROW.
USING Microsoft.Samples.Entity
Function MyRound(p1 Row(x EDM.Decimal)) AS (
Round(p1.x)
)
select MyRound(row(a as x)) from {CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)} as a
Ниже приведен пример определения типа REF.
USING Microsoft.Samples.Entity
Function UnReference(p1 Ref(AdventureWorks.Order)) AS (
Deref(p1)
)
select Ref(x) from AdventureWorksEntities.SalesOrderHeaders as x