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


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

Использование выражения явного приведения считается явным преобразованием. При явном преобразовании возможно усечение данных и потеря точности.

NoteПримечание.

Операция CAST может выполняться только над типами-примитивами и типами элементов перечисления.

Примеры

В следующем запросе Entity SQL оператор CAST используется для явного приведения выражения одного типа данных к другому. Запрос основан на модели AdventureWorks Sales. Для компиляции и запуска этого запроса выполните следующие шаги.

  1. Следуйте инструкциям в разделе Как выполнить запрос, возвращающий типы-примитивы (EntityClient).

  2. Передайте следующий запрос в качестве аргумента методу ExecutePrimitiveTypeQuery:

SELECT VALUE cast(p.ListPrice as Edm.Int32) 
    FROM AdventureWorksEntities.Product as p order by p.ListPrice

См. также

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

Операторы работы с типами (язык Entity SQL)
Справочник по Entity SQL