CAST (Entity SQL)
Преобразует выражение одного типа данных в другой.
CAST ( expression AS data_type )
Аргументы
- expression
Любое допустимое выражение, которое можно преобразовать в data_type.
- data_type
Целевой тип данных, предоставляемый системой. Это должен быть (скалярный) тип-примитив. Какой тип data_type будет использован, зависит от области запроса. Если запрос выполняется с командой EntityCommand, то этим типом данных будет тип модели EDM. Если запрос выполняется командой ObjectQuery, то этим типом данных будет тип CLR.
Возвращаемое значение
Возвращает значение такого же типа, что и аргумент data_type.
Замечания
Семантика выражения явного приведения такая же, как у выражения Transact-SQL CONVERT. Выражение явного приведения используется для преобразования значения одного типа в значение другого типа.
CAST( e as T )
Если «e» имеет некий тип S, а S можно преобразовать в T, то приведенное выше выражение является допустимым выражением явного приведения. Т должно иметь (скалярный) тип-примитив.
При явном приведении к Edm.Decimal можно дополнительно указать значения аспектов точности и масштаба. Если они не заданы явным образом, принимаются значения по умолчанию для точности и масштаба 18 и 0 соответственно. В частности, для Decimal поддерживаются следующие перегрузки:
CAST( d as Edm.Decimal );
CAST( d as Edm.Decimal(precision) );
CAST( d as Edm.Decimal(precision, scale) );
Использование выражения явного приведения считается явным преобразованием. При явном преобразовании возможно усечение данных и потеря точности.
Примечание. |
---|
Операция CAST может выполняться только над типами-примитивами и типами элементов перечисления. |
Примеры
В следующем запросе Entity SQL оператор CAST используется для явного приведения выражения одного типа данных к другому. Запрос основан на модели AdventureWorks Sales. Для компиляции и запуска этого запроса выполните следующие шаги.
Следуйте инструкциям в разделе Как выполнить запрос, возвращающий типы-примитивы (EntityClient).
Передайте следующий запрос в качестве аргумента методу
ExecutePrimitiveTypeQuery
:
SELECT VALUE cast(p.ListPrice as Edm.Int32)
FROM AdventureWorksEntities.Product as p order by p.ListPrice
См. также
Основные понятия
Операторы работы с типами (язык Entity SQL)
Справочник по Entity SQL